C#中如何使用NPOI实现Excel导入导出功能
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本文小编为大家详细介绍"C#中如何使用NPOI实现Excel导入导出功能",内容详细,步骤清晰,细节处理妥当,希望这篇"C#中如何使用NPOI实现Excel导入导出功能"文章能帮助大家解决疑惑,下面跟
千家信息网最后更新 2026年11月02日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安全错误
数据库的锁怎样保障安全
手磨咖啡
科技金融是不是互联网金融
互联网科技财经
互联网品科技
互联网扶贫科技
互联网 科技公司
以房互联网科技
互联网科技小额贷款
互联网 科技服务平台
甘肃拓世互联网科技有限公司
昊天互联网科技有限公司
中国航天科技大学国际工业互联网
成都互联网科技公司工作好不好
工业互联网展湾科技股份有限公司
互联网方面的科技前沿
21世纪互联网科技成就
广州梦谷互联网科技有限公司领导
互联网科技大会大佬
瑞安市蟠桃会互联网科技有限公司
颐高云石互联网科技
融势互联网科技
润盈互联网科技
剑昆互联网络科技有限公司临桂
世界互联网科技公司市值排名
昭通互联网科技选哪家
互联网科技人工智能实验室
江苏苏星互联网科技有限公司
上海创道互联网络科技有限公司
卡尔迅互联网科技有限公司
宁波跨境商互联网科技有限公司