我正在使用XLSX2CSV示例来解析工作簿中的大工作表。由于我只需要输出特定工作表的数据,因此我在 process 方法中添加了一个 if 语句来测试特定工作表。满足条件后,我继续该过程。
public void process()
throws IOException, OpenXML4JException, ParserConfigurationException, SAXException {
ReadOnlySharedStringsTable strings = new ReadOnlySharedStringsTable(this.xlsxPackage);
XSSFReader xssfReader = new XSSFReader(this.xlsxPackage);
StylesTable styles = xssfReader.getStylesTable();
XSSFReader.SheetIterator iter = (XSSFReader.SheetIterator) xssfReader.getSheetsData();
while (iter.hasNext()) {
InputStream stream = iter.next();
String sheetName = iter.getSheetName();
if (sheetName.equals("SHEET1")||sheetName.equals("SHEET2")||sheetName.equals("SHEET3")||sheetName.equals("SHEET4")||sheetName.equals("SHEET5")){
processSheet(styles, strings, stream);
try {
System.setOut(new PrintStream(
new FileOutputStream("C:\\Users\\edennis.AD\\Desktop\\test\\"+sheetName+".txt")));
} catch (Exception e) {
e.printStackTrace();
}
stream.close();
}
}
}
但我需要输出文本文件,不知道该怎么做。我尝试使用 System.set() 方法输出从 system.out 到文本的所有内容,但这不起作用我只是得到空白文件。