java当我从Excel工作表中读取inf时,无法按顺序打印文档文件中的信息
文档中的输出格式应如下所示:
这是excel工作表的输入格式:
我试图阅读Excel表格,并试图在Word文档中按系统顺序打印信息。我可以读取Excel工作表,但无法在文档文件中打印。我该怎么办
它显示Excel文件的最后一行,也就是说,它只是覆盖了文档文件,但没有附加它。有没有办法附加这个文件
public static void main(String[] args) throws Exception {
File src = new File("convertion java.xls");
FileInputStream fis = new FileInputStream(src);
HSSFWorkbook wb = new HSSFWorkbook(fis);
HSSFSheet sheet1 = wb.getSheetAt(0);
String[] header = new String[4];
for (int k = 0; k < 4; k++) {
header[k] = sheet1.getRow(0).getCell(k).getStringCellValue();
}
FileOutputStream out = new FileOutputStream(new File("output.docx"));
for (int j = 1; j < 5; j++) {
for (int i = 0; i < 4; i++) {
result = sheet1.getRow(j).getCell(i).getStringCellValue();
doc = header[i] + " = " + result;
System.out.println(doc);
XWPFDocument document = new XWPFDocument();
XWPFParagraph paragraph = document.createParagraph();
XWPFRun paragraphOneRunOne = paragraph.createRun();
paragraphOneRunOne.setText(doc);
document.write(out);
}
System.out.println();
}
wb.close();
out.close();
}}
我希望输出会附加doc文件,但不会重写它
# 1 楼答案
为
Excel
工作表中的每个单元格创建一个新的XWPFDocument
。这不会导致你想要的结果。要获得想要的结果,只需要一个XWPFDocument
,然后根据找到的Excel
单元格的内容用段落填充对于
Excel
部分,您应该使用org.apache.poi.ss.usermodel.*
而不是HSSF
,因为这是更一般的,并且也可以读取XSSF
(*.xlsx
)而且您不应该依赖于
getStringCellValue
,因为并非所有Excel
单元格内容都必须始终是文本。相反,您应该使用DataFormatter
从Excel
单元格获取单元格内容完整示例: