XLS转XLSX[C#,JavaScript]
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
工作中有一些2003版之前的Excel文件,现在想把他们批量转换成2007+的格式,这里总结3种方法,复杂度依次递增,完美度依次递增。 1. JavaScript利用js-xlsx包 ,可以在NodeJs环境中进行xls到xlsx的转换,非常简单,示例代码如下: const XLSX = require('xlsx'); var oldFile= XLSX.readFile('./test.xls'); XLSX.writeFile(oldFile, './test.xlsx'); 优点 2. C# NPOINPOI是从Java的POI移植过来的,速度也非常快,需要在nuget安装NPOI依赖, using NPOI.HSSF.UserModel; using NPOI.XSSF.UserModel; void ConvertWorkbook() { using (var streamRead = new FileStream(@"./test.xls", FileMode.Open, FileAccess.Read)) using (var streamWrite = new FileStream(@"./test.xlsx", FileMode.OpenOrCreate, FileAccess.Write)) { var book = new HSSFWorkbook(streamRead ); var newBook = new XSSFWorkbook(); var copiedSheets = Enumerable.Range(0, book.NumberOfSheets).Select(i => book.CloneSheet(i)); copiedSheets.Select((sheet, index) => new {sheet, index}).ToList() .ForEach(item => newBook.Insert(item.index, item.sheet)); newBook.Write(streamWrite); } } 优点 3.C# Excel这个是必杀技,100%成功率和兼容性,先安装nuget依赖, void ConvertWorkbook() { var app = new Microsoft.Office.Interop.Excel.Application {Visible = false}; var book = app.Workbooks.Open(@"./test.xls"); //注意,新的文件名没后缀 book.SaveAs(Filename: @"./test", FileFormat: Microsoft.Office.Interop.Excel.XlFileFormat.xlOpenXMLWorkbook); book.Close(); app.Quit(); } 优点 该文章在 2023/12/30 1:00:20 编辑过 |
关键字查询
相关文章
正在查询... |