Warning: fopen(/www/wwwroot/www.wendadaohang.com/data/md5_content_title/d2/d2e7dd0bbb883a7b6c9dfe2d336f082f.txt): failed to open stream: No space left on device in /www/wwwroot/www.wendadaohang.com/inc/function.php on line 2468

Warning: flock() expects parameter 1 to be resource, bool given in /www/wwwroot/www.wendadaohang.com/inc/function.php on line 2469

Warning: fclose() expects parameter 1 to be resource, bool given in /www/wwwroot/www.wendadaohang.com/inc/function.php on line 2475
c# winform程序,如何把读取出来的xml标签转换为excel? - 66问答网

c# winform程序,如何把读取出来的xml标签转换为excel?

引用excel组件后怎么把读取出来的数据输出成excel呢?xlm里有这些样式,所以得读取xml:<table><tr><td></td></tr><table>

方法一:
读取出数据后,以普通TXT文件,或者是HTML表格格式输出至TXT文档后,重新命名为.xls格式
如果以纯文本格式写入的话,数据与数据之间要用制表符隔开。
优点速度快,格式控制简单,缺点,非标准EXCEL格式,可以用EXCEL打开,但是后续编辑可能出现问题 方法二:
在Winfrom程序运行的本地电脑打开EXCEL程序进行写入后关闭。
缺点,机器上要装Office 2003及以上版本,并且要在WINFORM中引用DLL组件,在机器上打开EXCEL写入会牺牲一定系统性能,需要看数据量和导出量。
优点,获得的EXCEL表格为标准文件,格式正常,后续编辑等不会出现问题。

参考代码:

机器要安装 2003或以上版本EXCEL。
引用Excel2003版DLL
Using Excel;
Excel.Application myexcel = new Excel.Application();//创建EXCEL APPLICATION对象
//读打开模板文件及工作表1
Excel.Workbook myworkbook = myexcel.Workbooks.Add(System.Windows.Forms.Application.StartupPath + @"\模板文件.xls");
Excel.Worksheet mySheet = (Excel.Worksheet)myworkbook.ActiveSheet;
myexcel.Visible = false;//设置打开的EXCEL程序是否可见
//设置指定区域格式 ,不是索引,不从零开始
Excel.Range myrange = myexcel.get_Range(myexcel.Cells[1, 1], myexcel.Cells[arraycount + 5, 19]);
myrange.NumberFormatLocal = "@";//文本格式
// 将数组元素写入EXCEL
for (int i = 0; i < arraycount; i++)
{
for (int i2 = 0; i2 < lieshu; i2++)
{
myexcel.Cells[i + 2, i2+1] = array[i][i2]; //myexcel.cells[ , ]内不是索引,指示具体单元格,从1开始
}
}
//另存到生成文件夹,蓝色为指定包含路径的文件名,filename 为文件名变量,如“123.xls”
myworkbook.SaveAs(System.Windows.Forms.Application.StartupPath + @"\生成文件\" + filename, Excel.XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
//关闭EXCEL程序
myworkbook.Close(null, null, null);
myexcel.Workbooks.Close();
myexcel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(myexcel);
System.Runtime.InteropServices.Marshal.ReleaseComObject(myworkbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(mySheet);
mySheet = null;
myworkbook = null;
myexcel = null;
GC.Collect();
GC.Collect();//2次回收,否则进程EXCEL无法关闭
方法三:
网上的一些人提供的以EXCEL格式写出文件的方法。不过有点复杂,可以网上搜索下。一般都是WEB程序用的比较多,我没有研究过。要是要求比较高的话可以自己搜索下。

综合来说,如果只是数据写出来给人看看的,可以使用方法一就行了
如果需要给别人进行后续编辑使用的,最好使用方法二。
追求完美的话,只能网上查找方法三。
虽然方法一导出的数据也可以复制粘贴到正常EXCEL中编辑,不过相对来说是麻烦了点,你自己权衡下吧。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-13
用PageOffice吧,很简单就可以实现的。
第2个回答  2013-06-08
引用excel组件后怎么把读取出来的数据输出成excel呢?xlm里有这些样式,所以得读取xml:
相似回答