java - 在java中解析excel文件
问题描述
我有一个 excel 文件,其中包含 Map<Integer,String> 在我的 excel 中,例如:
名 | 姓 | 运动的 |
---|---|---|
名字1 | 姓氏1 | [{1:"足球"},{2:"手球"}] |
名字2 | 姓氏2 | [{1:"曲棍球"},{2:"射箭"},{3:"空手道"}] |
名字3 | 姓3 | [{1:"空手道"},{2:"拳击"},{3:"棒球"},{4:"跑步"}] |
我需要获取地图的值,例如第一个获取足球,手球作为列表,第二个获取相同的值,依此类推。请帮助我,我正在使用 Java8,我知道如何从单元格中获取 stringValues、numericValues、booleanValues,但是对此我有问题。
row.getCell(index).getStringCellValue();
row.getCell(index).getNumericCellValue();
解决方案
您需要编写几行代码来将第 3 列转换为您想要的格式。
您必须将第 3 列设为String
.,例如String mapColumn=row.getCell(index).getStringCellValue();
然后你必须将字符串迭代为 JSONArray(来自 org.json)。我写了一个存根。这可能会给你一个想法。
import org.json.JSONArray;
public static void main(String args[]) throws IOException {
String s="[{1:\"Football\"},{2:\"Handball\"}]";// Your 3rd Column Value
JSONArray js=new JSONArray(s); // Converting the String to JSONArray
List<String> list=new ArrayList<String>(); //Creating a list
for(int i=0;i<js.length();i++) {
list.add(js.getJSONObject(i).getString(String.valueOf(i+1))); //adding values to list
}
System.out.println(list.toString()); // Gives your desired output
}
样本输出:
[Football, Handball]
推荐阅读
- terraform - 从父模块或兄弟模块访问 terraform 提供程序
- promise - 可以无限时间使用 Promise.in 吗?
- python - 使用切片删除字符串的特定子字符串
- javascript - 将其作为 JavaScript 函数的一部分编写的更有效的方法?
- php - 在 codeigniter 中使用 fpdf 标签脚本时如何修复“Pdf_label::__construct() 缺少参数 1”
- stata - 计算员工先前经验的差异
- javascript - 输出图像始终为 PNG ,croppie 不保持原始格式
- shell - 如何通过另一个 cmd 的输出将容器 id 传递给 docker exec
- python-3.x - 如何使用 sklearn.base.SimpleImputer 实现 sklearn 转换器但返回 pandas DataFrame
- ios - 将数据从一个标签栏视图控制器的孩子(我认为?)传递到另一个 TabBarVC 的集合视图?(以编程方式)