C# - 将 xls 文件转换为 xlsx,无需 Office 组件

excel

1个回答

写回答

Loey.vivi

2025-06-25 13:40

+ 关注

excel
excel

如何使用C#将xls文件转换为xlsx,无需Office组件

在C#开发中,有时会遇到需要将xls文件转换为xlsx文件的需求。通常情况下,我们会使用Office组件来完成这个任务,但是这种方式可能会受到Office版本的限制,并且会增加项目的依赖性。本文将介绍一种无需Office组件的方法,使用C#来实现xls文件转换为xlsx文件的功能。

首先,我们需要使用NPOI库来读取和写入excel文件。NPOI是一个开源的.NET库,可以处理excel、word和PowerPoint等文件格式。可以通过NuGet包管理器将NPOI库添加到项目中。

接下来,我们需要编写代码来实现xls文件转换为xlsx文件的功能。下面是一个示例代码:

csharp

using NPOI.HSSF.UserModel;

using NPOI.XSSF.UserModel;

using System.IO;

public class excelConverter

{

public void ConvertXlsToXlsx(string xlsFilePath, string xlsxFilePath)

{

using (FileStream xlsFile = new FileStream(xlsFilePath, FileMode.Open, FileAccess.Read))

{

HSSFWorkbook xlsWorkbook = new HSSFWorkbook(xlsFile);

XSSFWorkbook xlsxWorkbook = new XSSFWorkbook();

for (int i = 0; i < xlsWorkbook.NumberOfSheets; i++)</p> {

HSSFSheet xlsSheet = xlsWorkbook.GetSheetAt(i) as HSSFSheet;

XSSFSheet xlsxSheet = xlsxWorkbook.CreateSheet(xlsSheet.SheetName) as XSSFSheet;

for (int j = 0; j <= xlsSheet.LastRowNum; j++)</p> {

HSSFRow xlsRow = xlsSheet.GetRow(j) as HSSFRow;

XSSFRow xlsxRow = xlsxSheet.CreateRow(j) as XSSFRow;

for (int k = 0; k < xlsRow.LastCellNum; k++)</p> {

HSSFCell xlsCell = xlsRow.Getcell(k) as HSSFCell;

XSSFCell xlsxCell = xlsxRow.CreateCell(k) as XSSFCell;

xlsxCell.SetcellValue(xlsCell.StringCellValue);

}

}

}

using (FileStream xlsxFile = new FileStream(xlsxFilePath, FileMode.Create, FileAccess.Write))

{

xlsxWorkbook.Write(xlsxFile);

}

}

}

}

以上代码定义了一个名为excelConverter的类,其中包含了一个名为ConvertXlsToXlsx的方法。该方法接受两个参数,分别是xls文件的路径和xlsx文件的路径。在方法内部,我们首先使用FileStream类打开xls文件,并使用HSSFWorkbook类读取xls文件的内容。然后,我们创建一个新的xlsx文件,并使用XSSFWorkbook类来操作该文件。接下来,我们遍历xls文件中的每个工作表和每一行,并将数据逐个复制到xlsx文件中。最后,我们使用FileStream类将xlsx文件保存到指定的路径。

接下来,我们可以使用这个方法将xls文件转换为xlsx文件。下面是一个示例代码:

csharp

string xlsFilePath = "path/to/your/file.xls";

string xlsxFilePath = "path/to/save/file.xlsx";

excelConverter converter = new excelConverter();

converter.ConvertXlsToXlsx(xlsFilePath, xlsxFilePath);

在上述示例中,我们首先指定了要转换的xls文件的路径,然后指定了要保存的xlsx文件的路径。然后,我们创建了一个excelConverter对象,并调用了其中的ConvertXlsToXlsx方法,将xls文件转换为xlsx文件。

通过使用NPOI库,我们可以在C#中实现xls文件转换为xlsx文件的功能,而无需使用Office组件。通过上述方法,我们可以轻松地将xls文件转换为xlsx文件,并且不受Office版本的限制。希望本文对你有所帮助!

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号