首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

如何把DataSet中的内容一次写入EXCEL中,请看代码

2012-01-19 
怎么把DataSet中的内容一次写入EXCEL中,请看代码Excel.ApplicationexcelnewExcel.Application()excel.Vi

怎么把DataSet中的内容一次写入EXCEL中,请看代码
Excel.Application   excel   =   new   Excel.Application();
excel.Visible   =   true;

excel.Application.Workbooks.Open(@ "d:\abc.xls ",Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);

Worksheet   worksheet   =   (Worksheet)   excel.ActiveSheet;
Range   r   =   worksheet.get_Range( "B5 ", "D8 ");
r.Value2   =   "a ";
r.Value2   =   "b ";
excel.Quit();
如果这样写从B5到D8都写成了b,用r.Value2   =   dt.Tables[0].Rows写也不对,请问怎么写才能一次写入.

[解决办法]
不管什么方法,肯定要循环转换DATASET
[解决办法]
Range r = worksheet.get_Range( "B5 ", "D8 ");
r.Value2 = "a ";
r.Value2 = "b ";
把r得值先付了a,然后付了b。
要在不同的格里写不同的值
需要循环写cell[x,y]
[解决办法]
可以将一个安全数组付值给r.Value2,我只用过VC++中的COleSafeArray,不知道C#中的数组是不是属于安全数组。

还有另一种思路,就是将DataSet的值生成一个格式字符串,然后将之放到剪贴板,最后在EXCEL进程中粘贴。

格式字符串的形式你可以自己在EXCEL中复制一个区域,然后在写字板中粘贴看看,下面是一个格式字符串的例子:
"第1行1列 "\t "第1行2列 "\t "第1行3列 "\t\n "第2行1列 "\t "第2行2列 "\t "第2行3列 "\t\n

以上是一个2行3列的矩阵其中\t单元格分隔,\n是行分隔C#中用NewLine代替

热点排行