java - 从网页读取数据并在excel中写入
问题描述
我正在尝试从网页读取数据并在 excel 中写入。在网页中包含两个表,这些表值被提取并在 excel 中写入。当提取和打印时一切正常。但它假设是写它在excel最后一行数据中只写在所有单元格中?
我认为它在我已经在 global.but 中声明所需数据的 for 中得到了压倒一切。但由于问题仍然存在,所以没有用。
请在下面的代码中找到并让我现在有任何问题。
Document doc=Jsoup.parse(singleFile, "UTF-8", "http://example.com/");
Element table=doc.select("table").get(0);
Element tabl=doc.select("table").get(1);
Elements rows1=tabl.select("tr");
Node Avg = null;
for(int i=1;i< rows1.size();i++){
Element row1=rows1.get(i);
Elements col=row1.select("td");
String Name =col.get(0).text();
Node Max=col.get(2).childNode(0);
Avg=col.get(3).childNode(0);
System.out.println("Name:"+Name+ ": Avg:"+Avg);
}
FileInputStream fis = new FileInputStream(new File("C:/Users/mramasa7/Desktop/metrics/GUX_BSL Metrics Data_JUN_2019.xlsx"));
Workbook workbook = new XSSFWorkbook(fis);
Sheet sheet = workbook.getSheetAt(0);
Cell cell=null;
cell=sheet.getRow(34).getCell(k);
cell.setCellValue(Avg.toString());
解决方案
据我了解,您的问题是原始表格上的最后一个值正在打印在 excel 电子表格的每个单元格中。
写在电子表格上的代码如下:
cell.setCellValue(Avg.toString());
您还没有将那段代码添加到为数据源上的每个条目创建单元格的循环中。您应该在创建行时填充它们。使用 Apache POI 示例:
public byte[] export(List<String> exportList) throws Exception{
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Export");
for(int i=0; i< exportList.size(); i++) {
Row row = sheet.createRow(i);
row.createCell(0)
.setCellValue(exportList.get(i));
}
ByteArrayOutputStream bos = new ByteArrayOutputStream();
workbook.write(bos);
bos.close();
return bos.toByteArray();
}
要编辑现有的 excel spreadhseet,您应该使用一个循环来遍历所有现有行,并用所需的值填充它。例子:
for(int i=0; i< sheet.getLastRowNum(); i++) {
Row row = sheet.getRow(i);
row.getCell(0)
.setCellValue(exportList.get(i)); // Insert the number of the cell herer (column)
}
推荐阅读
- android - 如何为 iOS 通用链接和 Android 资产链接设置 Angular 项目以在本机移动应用程序中打开链接
- sql-server - 如何将数据从 sqlcmd 导出为 cvs 格式或其他格式?
- security - Lua - 我将如何欺骗 GetFenv 函数而不更改它?
- opencv - 使用 openCV 进行图像分类、特征提取和模型构建
- sql - Dense_rank order by 超过 999 个字符
- reporting-services - 在 SSRS 中使用 User!UserID 访问 SSAS Cube 中的数据
- javascript - Tabulator 4 我可以扩展格式化程序而不是创建自定义格式化程序吗?
- oracle - Netsuites 保存的搜索
- node.js - 温斯顿:加密敏感信息
- apache - 如何使用具有 JNDI 属性的 Apache MQ 配置分布式主题或队列,并将 MQ 嵌入应用服务器