资源描述:
《C#操作Excel开发报表系列整理.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C#操作Excel进行报表开发系列共写了八篇,也已经有很久没有新东西了,现在整理一下,方便以后查阅,如果有写新的,会同时更新。需要注意的是因为Office的版本不同,实际的代码可能会有所不同,但是都是多几个,少几个参数,补上参数System.Reflection.Missing.Value就可以了将Excel应用于报表开发中(一)--开始使用C#和Excel进行报表开发(二)-操作统计图(Chart)使用C#和Excel进行报表开发(三)-生成统计图(Chart)使用C#和Excel进行报表开发(四)-复制单元格使用C#和Excel进行报表开发(五)-操作单元格边框和颜色使用C
2、#和Excel进行报表开发(六)-操作行和列使用C#和Excel进行报表开发(七)-设置单元格的显示格式4月12日新增使用C#和Excel进行报表开发(八)-用程序绑定数据源将Excel应用于报表开发中(一)--开始Postedon2006-11-2718:31Cure阅读(8507)评论(12) 编辑收藏所属分类:报表应用,.Net开发目前的商业工具如水晶报表,ActiveReport等,都提供了灵活,强大的功能,但是对于比较特殊化的表格,特别是国内的一些应用,都是一个个的格子组成的,这样要是用线来一根根画就比较麻烦,但是这类工具还都不提供表格化的报表布局定义方式。一个很好的
3、选择是VS2005的客户端报表(RDLC),但是在某几个方面还是不够灵活,例如,灵活性有限制,要想自己编码实现一些复杂逻辑还是有困难;要VS2005,对于一些还在使用VS2003的项目就只有眼馋的份了。用Excel来实现,优点在于页面布局设计灵活,同时使用代码来操作数据要更灵活,更精确。下面是一个简单的例子,打开一个定义好的Excel文件,这个文件是作为报表的模板,然后向模板的指定格子里填充数据,形成一个报表,在web方式下可以按照指定的命名方式在服务器上生成一个excel文件,之后传送到客户端,由客户端启动excel进行打印。 Excel.Applicationm_objEx
4、cel=null;Excel._Workbookm_objBook=null;Excel.Sheetsm_objSheets=null;Excel._Worksheetm_objSheet=null;Excel.Rangem_objRange=null;objectm_objOpt=System.Reflection.Missing.Value;try{m_objExcel=newExcel.Application();m_objBook=m_objExcel.Workbooks.Open("z:\Book1.xls",m_objOpt,m_objOpt,m_objOpt,m
5、_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt); m_objSheets=(Excel.Sheets)m_objBook.Worksheets;m_objSheet=(Excel._Worksheet)(m_objSheets.get_Item(1)); string[]info=newstring[5]{"Cure","26","dahuzizyd.cnblogs.com","汉","按时?放奥斯丁奥斯丁非是否奥斯丁非"};m_objRange=m_objShe
6、et.get_Range("B1",m_objOpt);m_objRange.Value=info[0];m_objRange=m_objSheet.get_Range("E1",m_objOpt);m_objRange.Value=info[1];m_objRange=m_objSheet.get_Range("B2",m_objOpt);m_objRange.Value=info[2];m_objRange=m_objSheet.get_Range("E2",m_objOpt);m_objRange.Value=info[3];m_objRange=m_objSheet.g
7、et_Range("A3",m_objOpt);m_objRange.Value=info[4];m_objExcel.DisplayAlerts=false; m_objBook.SaveAs("z:\Book2.xls",m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,Excel.XlSaveAsAccessMode.xlNoChange,m_objOpt,m_objOpt,m_objOpt,m_objOpt); }catch(Exceptio