java - 将excel/csv文件数据转换成字符串
问题描述
如何读取字符串中的 excel/csv 工作簿对象数据。
String fileData;
Workbook workbook = new XSSFWorkbook();
workbook.write(fileData);
System.out.println(fileData);
我不想在我的程序中使用文件服务器依赖项。所以有什么办法可以直接将内容写入字符串变量。
解决方案
如果您使用的是org.apache.poi ,那么您可以这样写:Workbook
String
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
.
推荐阅读
- javascript - 在嵌套的 JavaScript 对象中插入一个条目
- c# - 如何返回上一页并同时重新加载
- python - 如何使用 Django ORM 排除列的多个值?
- c# - 如何在wehook c#中使用对话框流中的权限助手意图
- snowflake-cloud-data-platform - 横向展平雪花中具有不同阵列长度的两列
- hyperledger-fabric - 对等点崩溃:运行时错误:无效的内存地址或 nil 指针取消引用
- laravel - 如何在laravel多对多关系中匹配数据透视表的确切行数?
- sql - 如何在 SQL 中匹配用户定义的数据类型
- mysql - mysql 8.0 上的选择性能问题
- reactjs - 如何为一组用户部署部署在 Docker 和 GCP 上的 React webapp