《C操作Excel类以及其使用举例说明.docx》由会员分享,可在线阅读,更多相关《C操作Excel类以及其使用举例说明.docx(23页珍藏版)》请在优知文库上搜索。
1、C#操作Excel的类以及其运用举例说明1、曲育这两天Ih于某种须要,探讨了吓.NET中对EXCel的互操作.之前主要是卜脆通过第三方的组件等方式来操作的Excel,这次细致的探讨了一下,对常用的EXCel操作需求做了一个简洁的总结,比如创建EXceI,设置单元格样式,合并单元格.导入内存中的DataTable,插入图片、图表等,在此茶拙上借助于MicrosoftQfficeJnterop.ExceI对这些操作进行了M装最终形成了ExceIHandlert,本文主要对自己封装的这个类进行简洁的举例说明,关于此类的完整代码参见第三部分.国总:对于命名空间MiCrOSoft.OfficeJnter
2、opExceI.运用之前须要引用CoM:MicrosoftOffice11.0Object1.ibraryoffice2003)或者MiCrOSOftOffice12.0Object1.ibrary(office2007,假如引川列表中没有,须要自行添加XrProgramOffiCe/OFFICE1112/EXCE1.EXE的引用.C如已羟安装VSTO(VISUalStudioToolsForOffice).亦可干腌添加对X:ProgramFllesXMicrosoftVisualStudio9.08.0VisualStudloToolsforOffcePIAOfficell12Microso
3、ft.Office.Interop.Ecel.dll的引用.2、ExceIHandIer为了展示该类的运用方法,新建了个WinForm的测试项目进行测试,项目名称可自定,添加对ExcelHandler的dll的引用.全部测试代码均放在港体的个按钮单击事务的处理方法中.2.1 创建EXCel文件H/测试ExceIHandler类/privatevoidbuttonTest_Click(objectsender,EventArgse)(stringexcel=string.Format(0Excel-l.xls,AppDomain1CurrentDomain.BaseDirectory,DateT
4、ime.Now.ToStringCyyyyMMddHHmmss);using(ExceIHandIerhandler=newEcelHandler(ecel,true)(handler.Ope11OrCreate();MeSSageBOX.Show(创建EXCeI胜利!”);handler.Save();MessageBox.Show(string.Format(lffExcel胜利!Excel路径:0,excel);)点击按钮执行后,可以行到在DebUg书目下多了个Excel文件.iyProjctsT皿UinUD*taViaaliztioaTnginf;.DataViualizatioabi
5、ftDbu文件99收麻工具帮助QP0后退1,上搜索文件荚国地址(B)|JDb1文件和文件夷任务J创陡一个新文件夹将这个文件夹发布到9ffb白共享此文件夹JJWicrosoft.OfficeInterop.Exceldlli*1TngngDataVi三ualraton.ext;TanncDataVisudiration.pdb*1TailingDataVisualiration.v三ho三t.CjCeTn*色蜓的Ex”】文传此文件的完整路径为:F:MyProjectsXTanging.DataVisuaizationTanging.DataVisualizatlonbinDebugExcel-2
6、02.xls.r.:之后的例子的Excel的文件的路径须要为你自己创建的Excel的相应路径.下面将举例说明对此Excel文件进行操作.2.2 创建自己的工作表WorksheetprivatevoidbuttonTeSjeliCk(ObjeCtsender,EventArgse)(stringexcel=string.FormatC0Excel-202.ls,AppDomaIn.CurrentDomain.BaseDirectory);using(ExceIHandIerhandler=newEXCeIHandler(excel,false)设置其次个参数为false衣示干脆打开现力的Exce
7、l文档handler.OpenOrCreate();创建一个WorksheetWorksheetsheet=handler.AddWorksheetCTestSheet);删除除TeStSheet之外的具余WOrkSheethandler.DeleteWorksheetcept(sheet);handler.Save();再次打开创建的EXCel,可以乔到新建的Worksheet2.3 单元格、Range等的掾作下而设EAl到E5的单元格样式,并且设置单元格值等privatevoidbuttonTest_Cllck(objectsender,EventArgse)(stringexcel=st
8、ring.Format(0Excel-202.ls,AppDomain1CurrentDomain.BaseDirectory);using(ExceIHandIerhandler=newEXCeIHandler(excel,false)设置其次个参数为false表示干脆打开现有的Excel文档handler.Ope11OrCreate();快符WOrkSheet对象Worksheetsheet=handler.GetWorksheet(TestSheef);/AI-ESRangerange=handler.GetRange(sheet,1,1,5,5);handler.SetRangeFor
9、mat(range);handler.SetCeliValue(sheetr1,1,测试);handler.SetCellValue(sheetr2,1,测试2);range.Font.Bold=true;加租handler.Save();)效果如下:2.4 导入DataTable代码如下;privatevoidbuttonTest_Click(objectsender,EventArgse)stringexcel=string.Format(0Ecel-202.xls,AppDomain1CurrentDomain.BaseDirectory);using(ExceIHandIerhandl
10、er=newExceHandler(ecel,false)设置其次个秒数为false表示干脆打开现有的Excel文档handler.OpenOrCreate();获得VVOrkSheet对象Worksheetsheet=handler.GetWorksheet(TestSheet);/A1-E5Rangerange=handler.GetRange(sheetf1,1,5,5);handler.SetRangeFormat(range);range.Font.Bold=true;System1Data-DataTabIetable=newSystem.Data.DataTable();tabl
11、e.Columns.AddRange(newDataCoIumnfnewDataCOIUmn(测试列l)fnewDataCOI1.Imn(测试列2),newDataCOIUmn(“测试列3);Randomrandom=newRandom(20);for(inti=O;i10;i+)效果如下图;5fd,!5EXCeI-20100314181502JdS0HMBO-Mic.BtAIB/口-IlAaII二laA字依陶玷J市算变图梏式ls融条件格式A,M%I庭哥国表悟格式IAFr1司3单元格律式格式S2字_2_|珏式单元格Ai三三三jjerr2,!入页面布层公式58据二W三1A测试BCD2测试23456测试导入表格7涕试列1测试列2测试列38174768567477982702357368108671475845181164872658161238168746981513520726953953142185586474315754737201951666003899129317797710188318192021