使用java将csv文件转成json文件
使用java将csv文件转成json文件,仅供参考。
csv文件转json文件的完整代码如下:
import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import com.opencsv.CSVReader; import com.opencsv.exceptions.CsvValidationException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; /** * csv文件转json文件 */ public class CsvToJson { /** 1. pom.xml导入依赖 在<dependencies></dependencies>标签中加入下面的依赖 <dependency> <groupId>com.opencsv</groupId> <artifactId>opencsv</artifactId> <version>5.4</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.4</version> </dependency> 2. main()方法 中指定 csv源文件路径 和导出的json文件路径 */ public static void main(String[] args) { // 源文件路径 // String csvFile = "/path/to/your/csv/file.csv"; // 导出文件路径 String jsonFile = "E:\\path\\your\\json\\file.json"; CSVReader csvReader = null; try { csvReader = new CSVReader(new FileReader(csvFile)); String[] headers = csvReader.readNext(); // headers 第一行表头 [is1, is2, is3, is4, is5] if (headers == null) { throw new AssertionError("No headers"); } JSONArray jsonArray = new JSONArray(); String[] lineInArray; // csvReader.readNext() 每一行的内容 [sample1, {"clt" :[] }, , , ] while ((lineInArray = csvReader.readNext()) != null) { JSONObject jsonObject = new JSONObject(); for (int i = 0; i < headers.length; i++) { // headers[i] 是这一行的表头 is1 is2 is3 // lineInArray[i] 是这一行的数据值 sample1 {"clt" :[] } sample2 {"clt" :[1,2] } // 数据值判空 && 去除空格!=空字符串 if (lineInArray[i] != null && !"".equals(lineInArray[i].trim())) { // 过滤excel函数关键词 包含则不添加 if (!isContain(lineInArray[i])) { // 这个条件时临时写的 可删除 不等于公式"s=s*(n -1)" if (!"s=s*(n -1)".equals(lineInArray[i])) if (!"s=s*(n -1)".equals(lineInArray[i])) { // 写入json对象中 "is1":"sample2" "is2":"{\"clt\" :[1,2] }" jsonObject.set(headers[i], lineInArray[i]); } } } } // 如果json对象不为空 jsonArray添加对象 if (!jsonObject.isEmpty()) { jsonArray.add(jsonObject); } } csvReader.close(); writeJsonToFile(jsonArray, jsonFile); } catch (IOException | CsvValidationException e) { e.printStackTrace(); } } /** * 导出文件 * @param jsonArray 导出数据 * @param jsonFile 导出文件路径 */ private static void writeJsonToFile(JSONArray jsonArray, String jsonFile) { try (FileWriter file = new FileWriter(jsonFile)) { file.write(jsonArray.toString()); System.out.println("Successfully Copied JSON Object to File..."); System.out.println("\nJSON Object: " + jsonArray); } catch (IOException e) { e.printStackTrace(); } } /** * 判断字符串str是否包含 excel函数关键字 * * @param str * @return */ public static boolean isContain(String str) { ArrayList<String> functionList = new ArrayList<>(); // excel函数 关键单词 大小写 functionList.add("SUM"); functionList.add("sum"); functionList.add("AVERAGE"); functionList.add("average"); functionList.add("MAX"); functionList.add("max"); functionList.add("MIN"); functionList.add("min"); functionList.add("IF"); functionList.add("if"); functionList.add("COUNT"); functionList.add("count"); functionList.add("VLOOKUP"); functionList.add("vlookup"); functionList.add("HLOOKUP"); functionList.add("hlookup"); functionList.add("INDEX"); functionList.add("index"); functionList.add("MATCH"); functionList.add("match"); functionList.add("CONCATENATE"); functionList.add("concatenate"); functionList.add("MID"); functionList.add("mid"); functionList.add("LEFT"); functionList.add("left"); functionList.add("RIGHT"); functionList.add("right"); functionList.add("INT"); functionList.add("int"); functionList.add("ROUND"); functionList.add("round"); functionList.add("SIN"); functionList.add("sin"); functionList.add("COS"); functionList.add("cos"); functionList.add("TAN"); functionList.add("tan"); functionList.add("LOG"); functionList.add("log"); functionList.add("EXP"); functionList.add("exp"); functionList.add("STDEV"); functionList.add("stdev"); functionList.add("VAR"); functionList.add("var"); for (String value : functionList) { if (str.contains(value)) { return true; } } return false; } }
Excel文件转Csv文件的完整代码如下: (需要先下载jar包,添加到项目中,add as library)
import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.WorkbookSettings; import jxl.read.biff.BiffException; /** * Excel文件转Csv文件 * Java操作Excel文件以及将xls/xlsx转为csv文件 * * jar包下载地址 JXL下载地址:http://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.6/jexcelapi_2_6_6.zip/download * 各版本下载地址:http://sourceforge.net/projects/jexcelapi/files/ */ public class ExcelToCsv { public static void main(String[] args) { String buffer = ""; try { // excel文件路径 String fileName = "E:\\youPath\\excel\\新建XLSX工作表.xlsx"; File file = new File(fileName); // 设置读文件编码 WorkbookSettings setEncode = new WorkbookSettings(); setEncode.setEncoding("GB2312"); // 从文件流中获取Excel工作区对象(WorkBook) Workbook wb = Workbook.getWorkbook(file, setEncode); Sheet sheet = wb.getSheet(0); for (int i = 0; i < sheet.getRows(); i++) { for (int j = 0; j < sheet.getColumns(); j++) { Cell cell = sheet.getCell(j, i); buffer += cell.getContents().replaceAll("\n", " ") + ","; } buffer = buffer.substring(0, buffer.lastIndexOf(",")).toString(); buffer += "\n"; } } catch (BiffException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //write the string into the file // csv保存路径 String savePath = "E:\\yourPath\\csv\\ExcelToCsvTest.csv"; File saveCSV = new File(savePath); try { if (!saveCSV.exists()) saveCSV.createNewFile(); BufferedWriter writer = new BufferedWriter(new FileWriter(saveCSV)); writer.write(buffer); writer.close(); } catch (IOException e) { e.printStackTrace(); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人