|
@@ -1,5 +1,9 @@
|
|
|
package com.phm.manage.util;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
import cn.hutool.core.text.csv.CsvData;
|
|
|
import cn.hutool.core.text.csv.CsvReader;
|
|
@@ -11,10 +15,6 @@ import cn.hutool.json.JSONObject;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-
|
|
|
/**
|
|
|
* @Description CsvUtils
|
|
|
* @Author WGK
|
|
@@ -76,16 +76,37 @@ public class CsvUtils {
|
|
|
*
|
|
|
* @param csvFilePath path
|
|
|
*/
|
|
|
- public static String fileCsvToJson(String csvFilePath) {
|
|
|
- // TODO csv文件转Json
|
|
|
+ public static JSONArray fileCsvToJson(String csvFilePath) {
|
|
|
CsvReader reader = CsvUtil.getReader();
|
|
|
// 从文件中读取CSV数据
|
|
|
CsvData data = reader.read(FileUtil.file(csvFilePath), CharsetUtil.CHARSET_GBK);
|
|
|
List<CsvRow> rows = data.getRows();
|
|
|
- // 遍历行
|
|
|
- for (CsvRow csvRow : rows) {
|
|
|
- // getRawList返回一个List列表,列表的每一项为CSV中的一个单元格(既逗号分隔部分)
|
|
|
+ // 获取CSV表头,即第一行数据
|
|
|
+ List<String> headers = rows.get(0).getRawList();
|
|
|
+ // 去除第一行,保留后续数据
|
|
|
+ List<CsvRow> dataLines = rows.subList(1, rows.size());
|
|
|
+ JSONArray jsonArray = new JSONArray();
|
|
|
+ for (CsvRow line : dataLines) {
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ for (int i = 0; i < headers.size(); i++) {
|
|
|
+ jsonObject.putOnce(headers.get(i), line.getRawList().get(i));
|
|
|
+ }
|
|
|
+ jsonArray.add(jsonObject);
|
|
|
}
|
|
|
- return "";
|
|
|
+ return jsonArray;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取csv文件中 参数名称
|
|
|
+ *
|
|
|
+ * @param csvFilePath csv文件地址
|
|
|
+ * @return 参数名称列表
|
|
|
+ */
|
|
|
+ public static List<String> getCsvHeaders(String csvFilePath) {
|
|
|
+ CsvReader reader = CsvUtil.getReader();
|
|
|
+ // 从文件中读取CSV数据
|
|
|
+ CsvData data = reader.read(FileUtil.file(csvFilePath), CharsetUtil.CHARSET_GBK);
|
|
|
+ List<CsvRow> rows = data.getRows();
|
|
|
+ return rows.get(0).getRawList();
|
|
|
}
|
|
|
}
|