怎么把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代替