WinForm项目开发中NPOI用法实例解析
本文实例展示了WinForm项目开发中NPOI用法,对于C#初学者有一定的借鉴价值。具体实例如下:
privatevoidExportMergeExcel() { if(File.Exists(templateXlsPath)) { inti=4,_recordNo=1; using(FileStreamfile=newFileStream(templateXlsPath,FileMode.Open,FileAccess.Read)) { HSSFWorkbook_excel=newHSSFWorkbook(file); ICellStyle_cellStyle=CreateCellStly(_excel); ISheet_sheetBasic=_excel.GetSheet(ExcelReadHelper.sheet_BasicInfo.Replace("$","")); ISheet_sheetStreatLamp=_excel.GetSheet(ExcelReadHelper.sheet_LampMoreLess.Replace("$","")); ISheet_sheetBasicEx=_excel.GetSheet(ExcelReadHelper.sheet_BasicExInfo.Replace("$","")); ISheet_sheetStreatLampEx=_excel.GetSheet(ExcelReadHelper.sheet_LampMoreLessExInfo.Replace("$","")); ISheet_sheetBasicTeamEx=_excel.GetSheet(ExcelReadHelper.sheet_BasicTeamStatistics.Replace("$","")); ISheet_sheetBasicLampTypeEx=_excel.GetSheet(ExcelReadHelper.sheet_BasicTypeStatistics.Replace("$","")); ISheet_sheetStreetLampMLEx=_excel.GetSheet(ExcelReadHelper.sheet_LampMoreLessTeamStatistics.Replace("$","")); ISheet_sheetStreetLampTeamML=_excel.GetSheet(ExcelReadHelper.sheet_LampMoreLessTypeStatistics.Replace("$","")); file.Close(); FillBasicSheetDb(_sheetBasic,i,_recordNo); _recordNo=1;i=4; FillStreetLampDb(_sheetStreatLamp,i,_recordNo); _recordNo=1;i=4; FillBasicExSheetDb(_sheetBasicEx,i,_recordNo); _recordNo=1;i=4; FillStreetLampExDb(_sheetStreatLampEx,i,_recordNo); i=1;IRow_rowSum=null;int_lampTotalLampCnt=0,_colLampCnt=0,_ncolLampCnt=0;double_lampTotalLampPw=0,_colLampPw=0,_ncolLampPw=0; FillBasicTeamExSheetDb(_excel,_rowSum,_sheetBasicTeamEx,_cellStyle,i,_lampTotalLampCnt,_colLampCnt,_ncolLampCnt,_lampTotalLampPw,_colLampPw,_ncolLampPw); i=1;_lampTotalLampCnt=0;_colLampCnt=0;_ncolLampCnt=0;_lampTotalLampPw=0;_colLampPw=0;_ncolLampPw=0; FillbasicLampTypeExSheetDb(_excel,_rowSum,_sheetBasicLampTypeEx,_cellStyle,i,_lampTotalLampCnt,_colLampCnt,_ncolLampCnt,_lampTotalLampPw,_colLampPw,_ncolLampPw); _lampTotalLampCnt=0;_lampTotalLampPw=0;i=1; FillsheetStreetLampMLSheetDb(_excel,_rowSum,_sheetStreetLampMLEx,_cellStyle,i,_lampTotalLampCnt,_lampTotalLampPw); _lampTotalLampCnt=0;_lampTotalLampPw=0;i=1; FillStreetLampTeamMLSheetDb(_excel,_rowSum,_sheetStreetLampTeamML,_cellStyle,i,_lampTotalLampCnt,_lampTotalLampPw); OutPutMergeExcel(_excel); } } } privatevoidFillBasicTeamExSheetDb(HSSFWorkbook_excel,IRow_rowSum,ISheet_sheetBasicTeamEx,ICellStyle_cellStyle,inti,int_lampTotalLampCnt,int_colLampCnt,int_ncolLampCnt,double_lampTotalLampPw,double_colLampPw,double_ncolLampPw) { foreach(ExcelStatisticsexcelBasicExinbasicTeamExList) { IRow_row=_sheetBasicTeamEx.CreateRow(i); ExcelWriteHelper.CreateStatisticsExcelRow(_row,excelBasicEx,"BasicTeam"); #region总灯数 int_lTotalLampCnt=0; int.TryParse(excelBasicEx.LampCount,out_lTotalLampCnt); _lampTotalLampCnt+=_lTotalLampCnt; #endregion #region总计算功率(KW) double_lTotalLampPw=0; double.TryParse(excelBasicEx.LampPower,out_lTotalLampPw); _lampTotalLampPw+=_lTotalLampPw; #endregion #region汇总灯数 int_cLampCount=0; int.TryParse(excelBasicEx.CollectCount,out_cLampCount); _colLampCnt+=_cLampCount; #endregion #region汇总功率(KW) double_cLampPw=0; double.TryParse(excelBasicEx.CollectPower,out_cLampPw); _colLampPw+=_cLampPw; #endregion #region非汇总灯数 int_ncLampCount=0; int.TryParse(excelBasicEx.NotCollectCount,out_ncLampCount); _ncolLampCnt+=_ncLampCount; #endregion #region非汇总功率(KW) double_ncLampPw=0; double.TryParse(excelBasicEx.NotCollectPower,out_ncLampPw); _ncolLampPw+=_ncLampPw; #endregion i++; } _rowSum=_sheetBasicTeamEx.CreateRow(i); _rowSum.HeightInPoints=20; _rowSum.CreateCell(0).SetCellValue("合计:"); _rowSum.CreateCell(1).SetCellValue(_lampTotalLampCnt); _rowSum.CreateCell(2).SetCellValue(_lampTotalLampPw); _rowSum.CreateCell(3).SetCellValue(_colLampCnt); _rowSum.CreateCell(4).SetCellValue(_colLampPw); _rowSum.CreateCell(5).SetCellValue(_ncolLampCnt); _rowSum.CreateCell(6).SetCellValue(_ncolLampPw); SetRowStyle(_rowSum,_cellStyle); }
定义样式:
///<summary> ///样式创建 ///eg: ///privateICellStyleCreateCellStly(HSSFWorkbook_excel) ///{ ///IFont_font=_excel.CreateFont(); ///_font.FontHeightInPoints=11; ///_font.FontName="宋体"; ///_font.Boldweight=(short)FontBoldWeight.Bold; ///ICellStyle_cellStyle=_excel.CreateCellStyle(); /////_cellStyle.FillForegroundColor=NPOI.HSSF.Util.HSSFColor.LightGreen.Index; /////_cellStyle.FillPattern=NPOI.SS.UserModel.FillPattern.SolidForeground; ///_cellStyle.SetFont(_font); ///return_cellStyle; ///} ///为行设置样式 ///</summary> ///<paramname="row">IRow</param> ///<paramname="cellStyle">ICellStyle</param> publicstaticvoidSetRowStyle(thisIRowrow,ICellStylecellStyle) { if(row!=null&&cellStyle!=null) { for(intu=row.FirstCellNum;u<row.LastCellNum;u++) { ICell_cell=row.GetCell(u); if(_cell!=null) _cell.CellStyle=cellStyle; } } }