首页 > 解决方案 > 将excel/csv文件数据转换成字符串

问题描述

如何读取字符串中的 excel/csv 工作簿对象数据。

String fileData;
Workbook workbook = new XSSFWorkbook();
workbook.write(fileData);
System.out.println(fileData);

我不想在我的程序中使用文件服务器依赖项。所以有什么办法可以直接将内容写入字符串变量。

标签: java

解决方案


如果您使用的是org.apache.poi 那么您可以这样写:WorkbookString

ByteArrayOutputStream baos = new ByteArrayOutputStream();
workbook.write(baos);
workbook.close();
String output = new String(baos.toByteArray(), Charset.defaultCharset());

但是,该字符串output将包含随机字符,因为工作簿写入的二进制文件不是普通文本。

所以更好的方法是Workbook逐行读取并将内容保存在 aStringBuilder中,例如:

StringBuilder sb = new StringBuilder();
for(Row r : workbook.getSheet("MySheet")){
    for (Cell c : r) {
        // Assuming the type of the cell is String
        sb.append(c.getStringCellValue()+" ");
    }
    sb.append("\n");
}
String result = sb.toString();

该字符串result将包含Workbook.


推荐阅读