C#中如何使用NPOI实现Excel导入导出功能(excel,npoi,开发技术)

时间:2024-05-02 15:21:34 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

Excel导入

使用OpenFileDiolog控件和button结合,选择文件导入,将路径显示在文本框

C#中如何使用NPOI实现Excel导入导出功能

设置按钮点击事件,将文件路径赋给textBox.Text

privatevoidDepartment_SUM_Click(objectsender,EventArgse){OpenFileDialogopen=newOpenFileDialog();open.ShowDialog();textBox1.Text=open.FileName;}

实现excel导入,通过textBox1.Text来获取文件路径

privatevoidbutton_Excel_Click(objectsender,EventArgse){FileStreamfs=null;IWorkbookworkbook=null;ISheetsheet=null;IRowrow=null;Stringtxtpath=textBox1.Text;fs=File.OpenRead(txtpath);workbook=newXSSFWorkbook(fs);if(workbook!=null){sheet=workbook.GetSheetAt(0);//获取excel表格的第一个sheetif(sheet!=null){//行的LastRowNum是0~N-1//列的LastCellNum是1~NintrowCount=sheet.LastRowNum;if(rowCount>0){IRowfirstrow=sheet.GetRow(0);intcellCount=firstrow.LastCellNum;for(inti=0;i<=rowCount-1;i++){//获取行的第6和第7列数据,如果cell类型是文本,则通过StringCellValue取值//如果cell类型是数值,则通过NumericCellValue来取值row=sheet.GetRow(i+1);row.Cells[5].NumericCellValue;row.Cells[6].StringCellValue;//可以将Cell的数据存放在list中,这里假设将两列cell的数据存入list1,list2}fs.Close();}//实际存放DataTable的位置//调用自定义方法,实现导出Add_DataTable_To_Excel(txtpath,table,sheet_name);}}

要实现excel导出,先将程序中的excel存为DataTable格式
本段代码存在于上面代码“//实际存放DataTable的位置”位置

DataTabletable=newDataTable();DataRowdr;table.Columns.Add("列名1",System.Type.GetType("System.String"));table.Columns.Add("列名2",System.Type.GetType("System.Double"));for(inti=0;i<list4.Count;i++){dr=table.NewRow();dr["列名1"]=list1i];dr["列名2"]=list2[i].ToString("0.0000");//将存入的数据格式保存为保留四位小数table.Rows.Add(dr);}

通过方法导出excel,传参为文件路径,DataTable,表名
通过获取要导入数据的目标excel的内容,导入数据,要将excel导出的方式

publicboolAdd_DataTable_To_Excel(stringoutput_file_path,DataTabledt,stringsheet_name){FileStreamfs=null;IWorkbookworkbook=null;ISheetsheet=null;IRowrow=null;XSSFWorkbookxssfworkbook=null;fs=newFileStream(output_file_path,FileMode.Open,FileAccess.Read,FileShare.ReadWrite);xssfworkbook=newXSSFWorkbook(fs);sheet=xssfworkbook.GetSheet(sheet_name);//设置马上要使用的Cell数据格式IDataFormatdataformat=xssfworkbook.CreateDataFormat();ICellStylestyle0=xssfworkbook.CreateCellStyle();style0.DataFormat=dataformat.GetFormat("0.0000");ICellStylestyle1=xssfworkbook.CreateCellStyle();style1.DataFormat=dataformat.GetFormat("0.00%");if(sheet!=null){introwCount=sheet.LastRowNum;if(rowCount>0){IRowfirstrow=sheet.GetRow(0);intcellCount=firstrow.LastCellNum;for(inti=0;i<=rowCount-1;i++){row=sheet.GetRow(i+1);//表中有行为空,将空的行影响消除if(!"".Equals(row.Cells[code_index].StringCellValue)){row=sheet.GetRow(i+1);for(intj=0;j<=dt.Rows.Count-1;j++){if(row.Cells[code_index].StringCellValue.Equals(dt.Rows[j][0])){//遍历将DataTable中的数据存入Cell的值row.Cells[1].SetCellValue(Convert.ToDouble(dt.Rows[j][0].ToString()));row.Cells[1].CellStyle=style0;row.Cells[2].SetCellValue(Convert.ToDouble(dt.Rows[j][1].ToString())/Convert.ToDouble(dt.Rows[j][1].ToString()));row.Cells[2].CellStyle=style1;}}}}}}//导出excelMemoryStreamstream=newMemoryStream();xssfworkbook.Write(stream);varbuf=stream.ToArray();using(FileStreamfss=newFileStream(txtpath,FileMode.Create,FileAccess.Write))//保存为Excel文件{fss.Write(buf,0,buf.Length);fss.Flush();}returntrue;}

基础的Excel文件的导入导出功能到这里全部完成

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:C#中如何使用NPOI实现Excel导入导出功能的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:python中如何用递归与迭代方法实现链表反转下一篇:

8 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18