使用java将网页解析为excel并使用超链接

时间:2017-10-23 21:47:06

标签: java excel hyperlink apache-poi jsoup

我对Apache POI和Jsoup很新,我非常困惑。我试图将此文件解析为excel:

enter image description here

我希望每个列都是excel电子表格中的一列。 "数据文件"," Stata数据文件"中的条目和"字典"列是按下时下载.zip文件的超链接。我知道Apache POI可以创建超链接,但它是否可以将这些现有的超链接解析为excel?此外,这些数据来自网页,而不是特定的文件,所以这甚至可以用于Java吗?

有人能指出我正确的方向吗?如果这个项目可行,那么使用POI或Jsoup会更好吗?谢谢!

1 个答案:

答案 0 :(得分:3)

你应该将这个任务分成两个步骤,因为它们解决了不同的问题,你将需要Jsoup和POI。

  1. 抓取网页并解析(Jsoup)
  2. 将已解析的结果写入Excel电子表格(POI)
  3. 1)您可以使用Jsoup来获取和解析网页,Jsoup Cookbook有许多简单的示例,您可以如何做到这一点。你可以这样:

    Document doc = Jsoup.connect("http://example.com/").get(); // Grab page
    Element table = doc.getElementById("my-table"); // Get table with id "my-table"
    

    通过使用选择器,您可以读取所需的数据并将其写入POJO或您真正喜欢的任何地方。

    2)获得所需数据后,您可以使用POI创建Excel电子表格。

    繁忙的开发者指南显示how to write to an excel sheet以及如何创建hyperlinks

    创建超链接的要点是:

    Workbook wb = new XSSFWorkbook();
    CreationHelper createHelper = wb.getCreationHelper();
    Sheet sheet = wb.createSheet("Test sheet");
    
    Cell cell = sheet.createRow(0).createCell((short)0);
    cell.setCellValue("URL Link"); // Text that will be shown, e.g. AL2015
    
    Hyperlink link = createHelper.createHyperlink(Hyperlink.LINK_URL);
    link.setAddress("http://poi.apache.org/"); // Set actual hyperlink URL
    cell.setHyperlink(link); // Add hyperlink to cell