NPOI进行Excel文件的导出

来源:互联网 发布:pc护眼软件 编辑:程序博客网 时间:2024/05/29 03:39
NPOI无需Office COM组件且不依赖Office,使用NPOI能够帮助开发者在没有安装微软Office的情况下读写Office 97-2003的文件,支持的文件格式包括xls, doc, ppt等。NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作。

被人称为操作EXCEL的终极方案,例子如下:


 ITable pXbTable = XYGlobalVariable.ZDBAdoWorkspace.OpenTable(XYTableDeclare.c_ZCPG_XB_PY_AFTERINVESTIGATE);            DataTable pXBTable = pXbTable.GetDataTable(new QueryFilter() { WhereString = "XMBH='" + cmbXMBH.SelectedValue.ToString() + "'", AddCaptionField = true });            RowBase pRowXM = XYGlobalVariable.ZDBAdoWorkspace.OpenTable(XYTableDeclare.c_XMJBXX_TableName).GetEntity<RowBase>(new QueryFilter() { WhereString = string.Format("XMBH ='{0}'", cmbXMBH.SelectedValue.ToString()) });                      try            {                 //将WorkBook指到我们原本设计好的“林木资产评估结果明细表.xls”                string xlsPath_LM = System.Windows.Forms.Application.StartupPath + "\\Temp\\林木资产评估结果明细表.xls";                IWorkbook wb_LM = new HSSFWorkbook(new FileStream(xlsPath_LM, FileMode.Open));                //设定要使用的Sheet为第0个Sheet                ISheet TempSheet_LM = wb_LM.GetSheetAt(0);                int StartRow = 4;                //pXBTable为Query回来的资料                for (int i = 0; i < pXBTable.Rows.Count; i++)                {                    //获取"林木"单元格并赋值                    TempSheet_LM.GetRow(StartRow + i).Cells[0].SetCellValue(Convert.ToString(pRowXM["ZL"]));                    TempSheet_LM.GetRow(StartRow + i).Cells[1].SetCellValue(Convert.ToString(pXBTable.Rows[i]["XBH"]));                    if (!string.IsNullOrEmpty(pXBTable.Rows[i]["XBMJ"].ToString()))                    { TempSheet_LM.GetRow(StartRow + i).Cells[2].SetCellValue(Convert.ToDouble(pXBTable.Rows[i]["XBMJ"])); }                    TempSheet_LM.GetRow(StartRow + i).Cells[3].SetCellValue(Convert.ToString(pXBTable.Rows[i]["YSSZ_DESC"]));                    TempSheet_LM.GetRow(StartRow + i).Cells[5].SetCellValue(Convert.ToString(pXBTable.Rows[i]["LZU_DESC"]));                    if (!string.IsNullOrEmpty(pXBTable.Rows[i]["GQXJ"].ToString()))                    { TempSheet_LM.GetRow(StartRow + i).Cells[6].SetCellValue(Convert.ToDouble(pXBTable.Rows[i]["GQXJ"])); }                    if (!string.IsNullOrEmpty(pXBTable.Rows[i]["XBXJ"].ToString()))                    { TempSheet_LM.GetRow(StartRow + i).Cells[7].SetCellValue(Convert.ToDouble(pXBTable.Rows[i]["XBXJ"])); }                    if (!string.IsNullOrEmpty(pXBTable.Rows[i]["LMGQPGZ"].ToString()))                    { TempSheet_LM.GetRow(StartRow + i).Cells[8].SetCellValue(Convert.ToDouble(pXBTable.Rows[i]["LMGQPGZ"])); }                    if (!string.IsNullOrEmpty(pXBTable.Rows[i]["XBLMPGZ"].ToString()))                    { TempSheet_LM.GetRow(StartRow + i).Cells[9].SetCellValue(Convert.ToDouble(pXBTable.Rows[i]["XBLMPGZ"])); }                    ////第一个Row要用Create的                    //TempSheet.CreateRow(StartRow + i).CreateCell(0).SetCellValue(Convert.ToString(pXBTable.Rows[i][0]));                    ////第二个Row之后直接用Get的                    //TempSheet.GetRow(StartRow + i).CreateCell(1).SetCellValue(Convert.ToString(pXBTable.Rows[i][1]));                    //TempSheet.GetRow(StartRow + i).CreateCell(2).SetCellValue(Convert.ToString(pXBTable.Rows[i][2]));                    //TempSheet.GetRow(StartRow + i).CreateCell(3).SetCellValue(Convert.ToString(pXBTable.Rows[i][3]));                    //TempSheet.GetRow(StartRow + i).CreateCell(4).SetCellValue(Convert.ToString(pXBTable.Rows[i][4]));                    //TempSheet.GetRow(StartRow + i).CreateCell(5).SetCellValue(Convert.ToString(pXBTable.Rows[i][5]));                    //TempSheet.GetRow(StartRow + i).CreateCell(6).SetCellValue(Convert.ToString(pXBTable.Rows[i][6]));                    //TempSheet.GetRow(StartRow + i).CreateCell(7).SetCellValue(Convert.ToString(pXBTable.Rows[i][7]));                    //TempSheet.GetRow(StartRow + i).CreateCell(8).SetCellValue(Convert.ToString(pXBTable.Rows[i][8]));                    //TempSheet.GetRow(StartRow + i).CreateCell(9).SetCellValue(Convert.ToString(pXBTable.Rows[i][9]));                    //TempSheet.GetRow(StartRow + i).CreateCell(10).SetCellValue(Convert.ToString(pXBTable.Rows[i][10]));                    //TempSheet.GetRow(StartRow + i).CreateCell(11).SetCellValue(Convert.ToString(pXBTable.Rows[i][11]));                    //TempSheet.GetRow(StartRow + i).CreateCell(12).SetCellValue(Convert.ToString(pXBTable.Rows[i][12]));                }                //将文档写到指定位置                using (FileStream file_LM = new FileStream(strExcelFileName + "\\林木资产评估结果明细表.xls", FileMode.Create))                {                    wb_LM.Write(file_LM);                    file_LM.Close();                    file_LM.Dispose();                }            }            catch (Exception ex)            {                string a = ex.ToString();            } 


0 0
原创粉丝点击