当前位置: 首页 > 知识库问答 >
问题:

超文本标记语言表转换成Excel使用JSOUP

周洋
2023-03-14

我将html表格从网页复制到excel,并尝试使用下面的代码,但没有结果。请就如何解决这个问题提出建议。我做了所有的实验,但没有得到正确的结果。

package javaautomation;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class test {

    public static void main(String[] args) 
      {


         try {
             Document doc = Jsoup.connect("https://www.ftrac.co.in/CP_SEC_MEM_MARK_WATC_VIEW.aspx").get();
             HSSFWorkbook workbook = new HSSFWorkbook();
             HSSFSheet sheet = workbook.createSheet("Sheet1");

             for (Element table : doc.select("gridMarket")) {
                 int rownum = 0;
                 for (Element row : table.select("tr")) {
                     HSSFRow exlrow = sheet.createRow(rownum++);
                     int cellnum = 0;
                     for (Element tds : row.select("td")) {
                         StringUtils.isNumeric("");
                         HSSFCell cell = exlrow.createCell(cellnum++);
                         cell.setCellValue(tds.text());
                     }
                 }
             }


         }catch (Exception e) {
             e.printStackTrace();
         }
      }
}

共有1个答案

阮喜
2023-03-14

您的代码中有多个问题,

此循环Element table:doc.select(gridMarket)结果可能不会出现,因此使用doc.getElementById(

  Element table = doc.getElementById(<<Id of table>>);
  if(table != null) {

    int rownum = 0;
        for (Element row : table.select("tr")) {
            HSSFRow exlrow = sheet.createRow(rownum++);
            int cellnum = 0;
                 for (Element tds : row.select("td")) {
                     StringUtils.isNumeric("");
                     HSSFCell cell = exlrow.createCell(cellnum++);
                     cell.setCellValue(tds.text());
                 }

  }

将数据写入工作表后,必须将其刷新到文件系统,如下所示,并应关闭工作簿。

        File file = new File("Report" + new Date().getTime() + ".xlsx");

        System.out.println(file.getAbsolutePath());
        FileOutputStream outputStream = new FileOutputStream(file);
        workbook.write(outputStream);
        workbook.close();
 类似资料:
  • 我之所以发布这个问题,是因为许多开发人员或多或少地以不同的形式问同一个问题。我会自己回答这个问题(我是iText Group的创始人/首席技术官),这样它就可以成为“维基答案”如果堆栈溢出的“文档”特性仍然存在,那么这将是文档主题的一个很好的候选者。 我正在尝试将以下HTML文件转换为PDF: 在浏览器中,这种超文本标记语言如下所示: HTMLWorker根本不考虑CSS 当我使用时,我需要创建一

  • 我正在使用ITextRenderer从html生成PDF。然而,我得到以下异常: 你能帮帮我吗? 任何帮助都将不胜感激。 先谢谢你。

  • 对于上面的html内容,我如何使用Jsoup解析并获取文本 当我使用 我得到了这样的东西

  • 我是新来的。我想解析html,但问题是我们必须在中指定的URL,我将在运行时从其他页面响应此URL。有没有办法将收到的网址传递到中?我读过这样的东西: 但是我不知道如何使用它。我很想知道是否有其他方法比jsoup更好。

  • 我正在尝试使用放心来检查服务器返回的HTML文档的一些属性。演示该问题的SSCCE如下所示: 现在,此尝试以,这是由所有可能的错误大约 30 秒左右后超时! 如果我用< code>xmlPathConfig()删除这一行。用()。功能(...)当特性“http://Apache . org/XML/features/disallow-DOCTYPE-decl”设置为true时,由于< code>D

  • 我有一些信息要在对话框中显示。它像标题,然后在它下面的文本;标题,然后在它下面的文本。像wise一样,有4个标题和4个描述要显示。它应该是这样的 描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述 描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述 如您所见,有粗体文本、下划线文本、换行符等。我想将这种文本添加到警报框中,所以下面是我尝试的。 然而,这个技巧没有奏效。发生的是,