Excel 如何通过编程将.xls和.csv文件转换为.xlsx?

Excel 如何通过编程将.xls和.csv文件转换为.xlsx?,excel,Excel,是否有一种编程解决方案不涉及在服务器上安装Office 更新: 这个解决方案将部署在.Net商店中,因此目前还没有PHP和Java方法(尽管我对库本身印象深刻) 我们将接收csv、.xls和.xlsx格式的文档,这些文档需要进行解析,并将其数据推送到数据库中。我们计划将OpenXMLSDK用于所有解析功能,并希望只对一种文件类型进行操作。您可以使用Java的来实现这一点 HSSF是POI项目的Excel'97(-2007)文件格式的纯Java实现 XSSF是POI项目的Excel 2007 OO

是否有一种编程解决方案不涉及在服务器上安装Office

更新: 这个解决方案将部署在.Net商店中,因此目前还没有PHP和Java方法(尽管我对库本身印象深刻)


我们将接收csv、.xls和.xlsx格式的文档,这些文档需要进行解析,并将其数据推送到数据库中。我们计划将OpenXMLSDK用于所有解析功能,并希望只对一种文件类型进行操作。

您可以使用Java的来实现这一点

HSSF是POI项目的Excel'97(-2007)文件格式的纯Java实现

XSSF是POI项目的Excel 2007 OOXML(.xlsx)文件格式的纯Java实现

我用它来读取
.xls
.xlsx
文件的完整组合,并且总是输出
.xlsx

对于
.csv
文件,请使用导入,并使用上面的Apache POI库导出

Super Csv的主要动机是成为Java上最好、最快、最程序员友好的免费Csv包


如果您想要一个PHP解决方案而不是java,或者使用PHPExcel(),并且可以用于解析列

 object columnValue = ws.Cells[i, ColIndex, i, ColIndex].Value; // get Specific cell.  

您可以对.csv、xlsx、.txt文件使用以下方法。

      public yourReturnType compute()
        {
            #region .XLSX Section

            if (FilePath.FullName.Contains(".xlsx") || FilePath.FullName.Contains(".xls"))
            {
                // Open and read the XlSX file.
                using (var package = new ExcelPackage(FilePath))
                {
                    ExcelWorkbook wb = package.Workbook;  // Get the work book in the file
                    if (wb != null)
                    {
                        if (wb.Worksheets.Count > 0)
                        {
                            ExcelWorksheet ws = wb.Worksheets.First();  // Get the first worksheet

                              yourParseCode(ws);
                        }
                    } // if End.
                } // using end.
            }
            #endregion

            #region .CSV Section
            if (FilePath.FullName.Contains(".csv") || FilePath.FullName.Contains(".txt"))
            {
                CSVParser c = new CSVParser(FilePath);
                DataTable dt = c.ReadCSVFile();

                using (ExcelPackage pck = new ExcelPackage())
                {
                    ExcelWorksheet ws = pck.Workbook.Worksheets.Add("temporary");
                    ws.Cells["A1"].LoadFromDataTable(dt, true);

                    yourParseCode (ws);

                    ////pck.Save(); // no need to save this temporary sheet.
                }
            }
            #endregion
            return (yourReturnType );
        }

对于csv文件,我建议将csv文件读入datatable,并使用EPPPLUS的.FromDataTable方法将其转换为xlsx文件。 我工作的很好,速度也很快。
对于读取xls文件,据我所知,没有免费的实现:(

这些问题对您有帮助吗?最好的答案取决于您打算使用或熟悉的编程语言。我也要提到它们。这也可能有助于您更多地了解上下文。它是客户端应用程序?Swing?还是Web应用程序?JSP/Servlet或PHP?等等。