C#调用NPOI库往xlsx表格中添加数据

以一个把DataTable的数据添加到xlsx表格为例:

步骤如下:

第一步:在管理解决方案NuGet库中添加NPOI的引用,如图(1)所示,只需安装DotNetCore.NPOI库即可。


图(1)

第二步:上代码,导出方法。

private void AddExcelData(DataTable dataTable)

        {

            //文件路径

            string excelPath = @"E:/xxx.xlsx";

            //读取流

            FileStream fileStream1 = new FileStream(excelPath, FileMode.Open, FileAccess.Read, FileShare.Read);

            //注意:xlsx文件才可以使用XSSFWorkbook类

            XSSFWorkbook xSSFWorkbook = new XSSFWorkbook(fileStream1);

            //获取工作表,参数为第几个表

            ISheet sheet = xSSFWorkbook.GetSheetAt(0);

            //写入流

            FileStream fileStream2 = new FileStream(excelPath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);

            //在工作表中末尾添加一行

            IRow row = sheet.CreateRow((short)(sheet.LastRowNum + 1));

            int i = 0;

            foreach (DataRow dataRow in dataTable.Rows)

            {

                //往每个单元格中添加数据

                row.CreateCell(i).SetCellValue(double.Parse(dataRow[i].ToString()));

                i++;

            }

            fileStream2.Flush();

            //设置表格内的公式重新计算,如果表格中没有任何类似加减求和这样的公式的话,可以不写这一句

            sheet.ForceFormulaRecalculation = true;

            //写入文件

            sheet.Workbook.Write(fileStream2);

            //写入文件,这两句要同时有,要不然插入数据后会出现文件被损坏的情况,导致文件打不开

            xSSFWorkbook.Write(fileStream2);

            sheet = null;

            xSSFWorkbook = null;

            fileStream2?.Close();

            fileStream2?.Dispose();

            fileStream1?.Close();

            fileStream1?.Dispose();

            xSSFWorkbook?.Clear();

        }

代码中有注释了,可自行消化,本人亲测代码实用无Bug。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容