所以我已经将csv更改为xls / xlsx,但我每个单元格都有一个字符。我在我的csv中使用了管道(|)作为分隔符。 这是csv中的一行: 4.0 | sdfa@sdf.nb | plplplp | plplpl | plplp | 1988年11月11日| M | asdasd@sdf.ghgh | sdfsadfasdfasdfasdfasdf | asdfasdf | 3.4253242E7 | 234234.0 |真|真|
但是在excel中我得到了 4。 0 | s d f a
以下是代码:
try {
String csvFileAddress = "manage_user_info.csv"; //csv file address
String xlsxFileAddress = "manage_user_info.xls"; //xls file address
HSSFWorkbook workBook = new HSSFWorkbook();
HSSFSheet sheet = workBook.createSheet("sheet1");
String currentLine=null;
int RowNum=0;
BufferedReader br = new BufferedReader(new FileReader(csvFileAddress));
while ((currentLine = br.readLine()) != null) {
String str[] = currentLine.split("|");
RowNum++;
HSSFRow currentRow=sheet.createRow(RowNum);
for(int i=0;i<str.length;i++){
currentRow.createCell(i).setCellValue(str[i]);
}
}
FileOutputStream fileOutputStream = new FileOutputStream(xlsxFileAddress);
workBook.write(fileOutputStream);
fileOutputStream.close();
System.out.println("Done");
} catch (Exception ex) {
System.out.println(ex.getMessage()+"Exception in try");
}
答案 0 :(得分:2)
管道符号必须以正则表达式转义:
String str[] = currentLine.split("\\|");
它是一个逻辑运算符(引自Javadoc of java.util.regex.Pattern):
X | Y X或Y