.net core 3.0使用DotNetCore.NPOI创建Excel

这篇博客指导如何在.NET Core 3.0项目中利用DotNetCore.NPOI库来创建.xlsx和.xls文件。首先,新建一个控制台应用程序并添加对DotNetCore.NPOI 1.2.2版本的引用,接着分别展示了创建两种不同格式Excel文件的步骤。

1. 新建一个.net core 3.0控制台应用程序,添加引用DotNetCore.NPOI, Version: 1.2.2

 
2789632-f7cf864054fdacc5.png
 

2. 创建一个.xlsx文件

class Program
    {
        static void Main(string[] args)
        {
            var workbook = new XSSFWorkbook();

            var sheet = workbook.CreateSheet("TestSheet");

            sheet.CreateRow(0).CreateCell(0).SetCellValue("Hello World");

            var path = @"D:\Test\Test.xlsx";
            using (var stream = new FileStream(path, FileMode.Create, FileAccess.Write))
            {
                workbook.Write(stream);            
            }
        }
    }

3. 创建一个.xls文件

class Program
    {
        static void Main(string[] args)
        {
            var workbo
<think> 我们被要求提供DotNetCore.NPOI使用示例代码。根据引用内容,我们可以创建Excel文件(包括.xlsx和.xls格式)以及读取Excel文件。 我们将分为三个部分: 1. 创建.xlsx文件(使用XSSFWorkbook) 2. 创建.xls文件(使用HSSFWorkbook) 3. 读取Excel文件(使用WorkbookFactory) 注意:在读取时,可以同时处理.xls和.xlsx。 另外,根据引用[4],如果在Linux上部署,可能需要安装一些依赖。 我们将提供C#代码示例,并按照要求进行说明。 同时,我们将按照系统指令使用正确的LaTeX格式,但注意在代码示例中不需要使用LaTeX。 我们将生成相关问题。 注意:引用标记[^1]等已经给出,我们在回答中如果需要引用这些内容,可以添加引用标记。但本次回答主要是代码示例,所以我们在介绍时可能会引用到。 开始回答: </think>### DotNetCore.NPOI 使用示例代码 DotNetCore.NPOI 是一个支持 .NET Core 的 Office 文件操作库,可在无需安装 Microsoft Office 的情况下读写 Word/Excel 文档[^1]。以下是常用场景的代码示例: --- #### **1. 创建 .xlsx 文件(Excel 2007+格式)** ```csharp using NPOI.XSSF.UserModel; using System.IO; class Program { static void Main() { // 创建工作簿和工作表 var workbook = new XSSFWorkbook(); var sheet = workbook.CreateSheet("Sheet1"); // 写入数据(第1行A列) var row = sheet.CreateRow(0); row.CreateCell(0).SetCellValue("产品名称"); row.CreateCell(1).SetCellValue("价格"); // 写入数据(第2行) row = sheet.CreateRow(1); row.CreateCell(0).SetCellValue("笔记本电脑"); row.CreateCell(1).SetCellValue(5999.99); // 保存文件 using (var stream = new FileStream(@"D:\Data.xlsx", FileMode.Create)) { workbook.Write(stream); } } } ``` --- #### **2. 创建 .xls 文件(Excel 97-2003格式)** ```csharp using NPOI.HSSF.UserModel; using System.IO; class Program { static void Main() { // 使用HSSFWorkbook创建旧版Excel var workbook = new HSSFWorkbook(); var sheet = workbook.CreateSheet("Report"); // 设置表头 var headerRow = sheet.CreateRow(0); headerRow.CreateCell(0).SetCellValue("ID"); headerRow.CreateCell(1).SetCellValue("销售额"); // 添加数据 var dataRow = sheet.CreateRow(1); dataRow.CreateCell(0).SetCellValue(101); dataRow.CreateCell(1).SetCellValue(150000); // 保存文件 using (var fs = new FileStream(@"D:\Report.xls", FileMode.Create)) { workbook.Write(fs); } } } ``` --- #### **3. 读取 Excel 文件(兼容.xls/.xlsx)** ```csharp using NPOI.SS.UserModel; using System.IO; class Program { static void Main() { var filePath = @"C:\Files\Data.xlsx"; // 验证文件存在性 if (!File.Exists(filePath)) return; using (var fs = new FileStream(filePath, FileMode.Open)) { // 自动识别Excel版本 IWorkbook workbook = WorkbookFactory.Create(fs); ISheet sheet = workbook.GetSheetAt(0); // 获取第一个工作表 // 遍历所有行 for (int i = 0; i <= sheet.LastRowNum; i++) { IRow row = sheet.GetRow(i); if (row == null) continue; // 遍历行中的单元格 for (int j = 0; j < row.LastCellNum; j++) { ICell cell = row.GetCell(j); Console.WriteLine($"行[{i+1}] 列[{j+1}] 值: {cell?.ToString() ?? "空"}"); } } } } } ``` --- #### **Linux 系统依赖配置(CentOS)** 在 Linux 部署时需安装依赖[^4]: ```bash yum install autoconf automake libtool freetype-devel fontconfig yum install libjpeg-turbo-devel libpng-devel giflib-devel git clone https://github.com/mono/libgdiplus cd libgdiplus ./autogen.sh make make install ln -s /usr/local/lib/libgdiplus.so /usr/lib64/gdiplus.dll ``` --- ### 关键说明 1. **命名空间差异**: - `.xlsx` 操作使用 `NPOI.XSSF.UserModel` - `.xls` 操作使用 `NPOI.HSSF.UserModel` - 通用操作使用 `NPOI.SS.UserModel` 2. **数据类型处理**: - 数值直接用 `SetCellValue(123.45)` - 日期需转换格式:`SetCellValue(DateTime.Now)` - 公式:`cell.SetCellFormula("SUM(A1:A10)")` 3. **性能优化**: - 大文件操作时使用 `SXSSFWorkbook`(流式写入) - 及时释放资源(`using`语句)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值