以文本方式查看主题 - 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单元格,小数据量没问题,数据量大的话则效率就低了。 先把表格数据存入二维数组,再填入对应的单元格区域,则高效许多!
|
||||
-- 作者:程兴刚 -- 发布时间: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作为数据源存放和操作数据也是挺方便的。现在才知道,之前有狐友提过了。
|
||||
-- 作者:loongtai -- 发布时间:2013/9/9 10:45:00 -- 以下是引用jspta在2013-1-18 16:05:00的发言:
用datatable的方法比数组效率高吗?
这个是VBA编写最基本的方法,效率提升10-1000倍。 foxtable中datatable比任何数组都好用,可惜目前foxtable中还没运用到 |
||||
-- 作者:jspta -- 发布时间:2013/9/9 11:28:00 -- 以下是引用loongtai在2013-9-9 10:45:00的发言:
用datatable的方法比数组效率高吗? 你可以把DataTable运用成一个2维数组,但是无法直接导出到excel。导出的话还是要用数组 Datatable的作用 = 数组(保存)+字典(查询KEY) 不用太迷恋数组,数组的主要作用是存储数据到内存加快运算和循环计算,对于其他的应该,使用其他方法解决,比如list和dictionary
|