我正在阅读包含英文和泰语字符的.txt文件,并在excel中编写这些行。但有些行中泰语字符正在excel中打印垃圾值。由于将有多个文件,我正在阅读将其添加到arraylist(稍后将更改为treemap)的特定内容,并使用apachepoi在excel上编写这些arraylist。下面是示例文件内容、java代码和excel屏幕截图。谢谢你的帮助。
示例文件内容:D000003001101449620876436327 siriyakon tri 24112024112006100000037343atm
D00000310101154449620641542361107นางสุชาวดี กระเทศ 650283977 24112024112003900000059064csh公司
代码:
File folder = new File("D:\\Files");
File[] listOfFiles = folder.listFiles();
for (File file : listOfFiles) {
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis, StandardCharsets.UTF_8);
BufferedReader br = new BufferedReader(isr); }
else
{ if (line.startsWith("D"))
{
String str = line.substring(21,31);
subscribernolist.add(str);
custnolist.add(line.substring(76,85));
customernamelist.add((String) line.substring(36,49));
}
}
}
}
int currentRow = 0;
Workbook workbook=new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Merge Data");
Row rowheader = sheet.createRow(currentRow);
Row row;
rowheader.getCell(0).setCellValue("CUST NO.");
rowheader.getCell(1).setCellValue("SUBSCRIBER NO.");
rowheader.getCell(2).setCellValue("CUST NAME");
currentRow++;
for (int counter = 0; counter < customernamelist.size(); counter++) {
row = sheet.createRow(currentRow);
row.createCell(0).setCellValue(custnolist.get(counter));
row.createCell(1).setCellValue(subscribernolist.get(counter));
row.createCell(2).setCellValue(customernamelist.get(counter));
currentRow++;
}
sheet.autoSizeColumn(3);
FileOutputStream fileOut = new FileOutputStream(new File ("D:\\Files\\merge.xlsx"));
workbook.write(fileOut);
fileOut.close();
workbook.close();
}
excel编写如下
暂无答案!
目前还没有任何答案,快来回答吧!