在一个项目中,基本都存在报表模块。辛辛苦苦做一个项目,经历各种困难,最终只求一个结果。报表采用的方式多多,在我的工作中多用水晶或者office。
前几天在接手别人的工作后,发现其在写导出EXCEL时非常慢而且代码很复杂,长达上千行。加之需要不定期维护,乃变成了一个坑,故删掉重写。
前提条件:报表采用HTML的Table表格式堆写成的一个巨大字符串,标准HTMl格式
偷懒办法:用复制粘贴的方式将数据写入到报表中。先将字符串拷贝到系统剪贴板,然后调用EXCEl工作薄的Paste方法粘贴即可。代码如下。
引入EXCel的模块dll。
前几天在接手别人的工作后,发现其在写导出EXCEL时非常慢而且代码很复杂,长达上千行。加之需要不定期维护,乃变成了一个坑,故删掉重写。
前提条件:报表采用HTML的Table表格式堆写成的一个巨大字符串,标准HTMl格式
偷懒办法:用复制粘贴的方式将数据写入到报表中。先将字符串拷贝到系统剪贴板,然后调用EXCEl工作薄的Paste方法粘贴即可。代码如下。
引入EXCel的模块dll。
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
object o = Type.Missing;
excel.Application.Workbooks.Add(true);
excel.Visible = false;
excel.DisplayAlerts = false;
Workbook pBook = excel.Workbooks[1];
Worksheet pSheet = pBook.Worksheets[1] as Worksheet;
//m_InnerText 报表字符串
Clipboard.SetText(m_InnerText, TextDataFormat.UnicodeText);
pSheet.Paste(o, o);
Clipboard.Clear();
pBook.Save();
excel.Save(sfd.FileName);
excel.Quit();
excel = null;