【问题标题】:Possible to automate an excel process using java?可以使用java自动化excel流程吗?
【发布时间】:2017-07-10 20:35:10
【问题描述】:

我当前的程序正在尝试下载文件,然后将它们合并为一个大的 Excel 文件。我正在努力解决的问题是,我从中下载它们的网站出于某种原因将它们制作为 .html 文件,但将 .xls 扩展名附加到它们。这允许 Excel 手动打开它们,但不允许我使用 Apache POI 来读取它们,因为它看到了文件格式/扩展名的差异。我的流程如下:

1 - 运行我的程序的一部分,该程序使用 Selenium 通过我的网络浏览器下载文件 - 这工作正常

2 - 手动打开每个下载的文件和另存为 xlsx 文件(注意:当我在 Excel 中手动打开它们时,我被告知存在文件格式/扩展名差异,只是为了清楚)

3 - 运行我的程序的其余部分,该程序梳理每个新文件(在步骤 2 中创建的文件)并将所有数据附加到最终输出文件 - 这工作正常

有什么方法可以自动化这个过程还是我必须继续手动完成?

【问题讨论】:

  • 听起来你的文件不是 真的 excel 格式,而是可能包含一些 MS-Excel 可以解析的表格的 HTML。当您使用 Notepad++ 等常规文本编辑器打开此类文件时,您会看到什么?
  • 它显示了页面中的所有 HTML

标签: java excel selenium


【解决方案1】:

您在评论中说您在文本编辑器中打开文件并看到它是 HTML5。

我会使用像 jsoup 这样的 HTML 解析器来获取您需要的数据并使用 Apache POI 创建一个新文件。

【讨论】:

    【解决方案2】:

    您可以使用EasyXLS 库。它允许读取 HTML 文件并保存为 XLSX。

    ExcelDocument workbookForXLSX = new ExcelDocument();
    
    for (int i=0; i<fileCount; i++){
       ExcelDocument workbookForHTML = new ExcelDocument();
       workbookForHTML.easy_LoadHTMLFile(filePath[i]);//or stream to the file
       workbookForXLSX.easy_addWorksheet((ExcelWorksheet)workbookForHTML.easy_getSheetAt(0));
       workbookForHTML.Dispose();
    }
    
    workbookForXLSX.easy_WriteXLSXFile(filePathXLSX);
    workbookForXLSX.Dispose();
    

    您可以从以下地址下载适用于 Java 的 Excel 库:
    https://www.easyxls.com/java-excel-library

    有关阅读 HTML 文件以及支持哪些 HTML 标记的更多详细信息,请访问: https://www.easyxls.com/manual/basics/import-from-html-file-format.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-06
      • 2019-09-14
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 2019-07-14
      相关资源
      最近更新 更多