以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  VBA二维数组写入Excel单元格实例  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=28089)

--  作者:don
--  发布时间:2013/1/18 12:31:00
--  VBA二维数组写入Excel单元格实例
很多时候,我们把表格数据写入指定的Excel文件中,一般思维是:一行一列地赋值给Excel单元格,小数据量没问题,数据量大的话则效率就低了。
先把表格数据存入二维数组,再填入对应的单元格区域,则高效许多!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:sms.rar


--  作者:程兴刚
--  发布时间:2013/1/18 12:36:00
--  
谢谢分享!
--  作者:hanxuntx
--  发布时间:2013/1/18 14:51:00
--  
收藏谢谢
--  作者:lin_hailun
--  发布时间:2013/1/18 14:57:00
--  
 没时间细看,先mark一下。用到再看。
--  作者:jspta
--  发布时间:2013/1/18 16:05:00
--  

这个是VBA编写最基本的方法,效率提升10-1000倍。

foxtable中datatable比任何数组都好用,可惜目前foxtable中还没运用到


--  作者:lin_hailun
--  发布时间:2013/1/18 16:43:00
--  
 看了代码,确实是一个很好的方法。

 还有一种方法是,直接把excel作为数据源,直接操作excel,这个是最方便的,但是现在狐表没有集成。

 代码类似于:

string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\\\\Test.xls;Extended Properties=Excel 8.0;";
string sql = "Select * from [sheet1$]";
System.Data.OleDb.OleDbConnection connection = new System.Data.OleDb.OleDbConnection( connectionString );
System.Data.OleDb.OleDbDataAdapter dataAdapter = new System.Data.OleDb.OleDbDataAdapter( sql, connection );
System.Data.DataSet dataSet = new DataSet();
connection.Open();
dataAdapter.Fill( dataSet, "test" );
connection.Close();
return dataSet;

--  作者:don
--  发布时间:2013/1/18 17:41:00
--  
不想直接操作Excel,Excel文件是给他人看的(如不是非要如此,Excel中大不必再存放数据)。
且表中所有数据也是自动生成,还可进行其它查询统计用途.

--  作者:lin_hailun
--  发布时间:2013/1/18 18:06:00
--  
 其实用excel作为数据源存放和操作数据也是挺方便的。现在才知道,之前有狐友提过了。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:用excel作为数据源.zip



--  作者:loongtai
--  发布时间:2013/9/9 10:45:00
--  
以下是引用jspta在2013-1-18 16:05:00的发言:

这个是VBA编写最基本的方法,效率提升10-1000倍。

foxtable中datatable比任何数组都好用,可惜目前foxtable中还没运用到

用datatable的方法比数组效率高吗?
--  作者:jspta
--  发布时间:2013/9/9 11:28:00
--  
以下是引用loongtai在2013-9-9 10:45:00的发言:

用datatable的方法比数组效率高吗?

你可以把DataTable运用成一个2维数组,但是无法直接导出到excel。导出的话还是要用数组

Datatable的作用 = 数组(保存)+字典(查询KEY)

不用太迷恋数组,数组的主要作用是存储数据到内存加快运算和循环计算,对于其他的应该,使用其他方法解决,比如list和dictionary