C#中如何使用NPOI实现Excel导入导出功能
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,本文小编为大家详细介绍"C#中如何使用NPOI实现Excel导入导出功能",内容详细,步骤清晰,细节处理妥当,希望这篇"C#中如何使用NPOI实现Excel导入导出功能"文章能帮助大家解决疑惑,下面跟
千家信息网最后更新 2025年02月06日C#中如何使用NPOI实现Excel导入导出功能
本文小编为大家详细介绍"C#中如何使用NPOI实现Excel导入导出功能",内容详细,步骤清晰,细节处理妥当,希望这篇"C#中如何使用NPOI实现Excel导入导出功能"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
Excel导入
使用OpenFileDiolog控件和button结合,选择文件导入,将路径显示在文本框
设置按钮点击事件,将文件路径赋给textBox.Text
private void Department_SUM_Click(object sender, EventArgs e) { OpenFileDialog open = new OpenFileDialog(); open.ShowDialog(); textBox1.Text = open.FileName; }
实现excel导入,通过textBox1.Text来获取文件路径
private void button_Excel_Click(object sender, EventArgs e) { FileStream fs = null; IWorkbook workbook = null; ISheet sheet = null; IRow row = null; String txtpath = textBox1.Text; fs = File.OpenRead(txtpath); workbook = new XSSFWorkbook(fs); if (workbook != null) { sheet = workbook.GetSheetAt(0); //获取excel表格的第一个sheet if (sheet != null) { //行的LastRowNum是0~N-1 //列的LastCellNum是1~N int rowCount = sheet.LastRowNum; if (rowCount > 0) { IRow firstrow = sheet.GetRow(0); int cellCount = firstrow.LastCellNum; for (int i = 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的位置"位置
DataTable table = new DataTable(); DataRow dr; table.Columns.Add("列名1", System.Type.GetType("System.String")); table.Columns.Add("列名2", System.Type.GetType("System.Double")); for (int i = 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导出的方式
public bool Add_DataTable_To_Excel(string output_file_path, DataTable dt, string sheet_name) {FileStream fs = null; IWorkbook workbook = null; ISheet sheet = null; IRow row = null;XSSFWorkbook xssfworkbook = null; fs = new FileStream(output_file_path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); xssfworkbook = new XSSFWorkbook(fs); sheet = xssfworkbook.GetSheet(sheet_name);//设置马上要使用的Cell数据格式 IDataFormat dataformat = xssfworkbook.CreateDataFormat(); ICellStyle style0 = xssfworkbook.CreateCellStyle(); style0.DataFormat = dataformat.GetFormat("0.0000"); ICellStyle style1 = xssfworkbook.CreateCellStyle(); style1.DataFormat = dataformat.GetFormat("0.00%");if (sheet != null) { int rowCount = sheet.LastRowNum; if (rowCount > 0) { IRow firstrow = sheet.GetRow(0); int cellCount = firstrow.LastCellNum;for (int i = 0; i <= rowCount - 1; i++) { row = sheet.GetRow(i + 1); //表中有行为空,将空的行影响消除 if (!"".Equals(row.Cells[code_index].StringCellValue)) { row = sheet.GetRow(i + 1); for (int j = 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; } } } } } }//导出excelMemoryStream stream = new MemoryStream();xssfworkbook.Write(stream); var buf = stream.ToArray(); using (FileStream fss = new FileStream(txtpath, FileMode.Create, FileAccess.Write)) //保存为Excel文件 { fss.Write(buf, 0, buf.Length); fss.Flush(); } return true;}
基础的Excel文件的导入导出功能到这里全部完成
读到这里,这篇"C#中如何使用NPOI实现Excel导入导出功能"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
数据
文件
功能
路径
C#
位置
内容
文章
格式
代码
实际
文本
方法
类型
妥当
事件
基础
小数
思路
按钮
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
代签软件开发合同范本
传奇游戏app软件开发
抓爬金十数据库
公司网络安全拓朴图
瓯海区现代化刀片服务器欢迎咨询
互联网医疗的高科技视频
第一个我的世界开了服务器的是谁
宝山区项目数据库服务商报价行情
收银系统提示云服务器登录失败
网络安全专项监督检查排查记录
监控服务器怎么联系电脑
网络安全书知乎
高青企业软件开发
泰安智慧养老软件开发软件
在数据库表上的字段有效性规则是
数据库图片检索
东方财富软件开发难进么
网络安全知识的案例
数据库的安全管理报告总结
滨州染整管理软件开发公司
使用sql命令创建数据库
网络安全演讲比赛背景图片
信息网络安全三级考试试题
天津做app软件开发
庆富网络技术
广州旺尔宝软件开发
工业数据库有哪些
惠普 中国服务器
诺基亚的上网显示服务器故障
穿越火线哪个服务器最不卡