【Java】之获取CSV文件数据以及获取Excel文件数据
一、获取CSV文件数据
import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.testng.SkipException; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import java.io.*; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class DataProviderTest { public Iterator<Object[]> readDataFromCSV(String path){ // 读取CSV文件方法 List<Object[]> list = new ArrayList<Object[]>(); try { FileReader is = new FileReader(new File(path)); BufferedReader br = new BufferedReader(is); while(br.ready()){ list.add(br.readLine().split(",")); } return list.iterator(); } catch (Exception e) { throw new SkipException(e.getMessage()); } } @DataProvider public Iterator<Object[]> getData1() throws UnsupportedEncodingException { // 获取CSV方法 String path = this.getClass().getResource("test.xlsx").getPath(); String path1 = java.net.URLDecoder.decode(path, "utf-8"); System.out.println(path1); return readDataFromCSV(path1); } @Test(dataProvider = "getData1") public void test1(String text1,String text2) { // 打印CSV数据 System.out.println(text1); System.out.println(text2); } }
二、获取Excel文件数据
import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.testng.SkipException; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import java.io.*; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * @author zc * @date 2021-01-21 17:18 */ public class DataProviderTest { public Object[][] getDataFromExcel(String excelPath){ // 读取excel文件方法 Workbook book; try { FileInputStream f = new FileInputStream(excelPath); book = new XSSFWorkbook(f); Sheet sheet = book.getSheetAt(0); int rowInExcel = sheet.getPhysicalNumberOfRows(); int columnInExcel = sheet.getRow(0).getPhysicalNumberOfCells(); String[][] obj = new String[rowInExcel-2][columnInExcel]; for (int row = 2; row < rowInExcel; row++) { for (int col = 0; col < columnInExcel; col++) { sheet.getRow(row).getCell(col).setCellType(Cell.CELL_TYPE_STRING); obj[row-2][col] = sheet.getRow(row).getCell(col).getStringCellValue(); System.out.println(obj[row-2][col]); } } return obj; } catch (Exception e) { // TODO Auto-generated catch block throw new SkipException(e.getMessage()); } } @DataProvider public Object[][] getData2() throws UnsupportedEncodingException { // 获取excle方法 String path = this.getClass().getResource("test.xlsx").getPath(); String path1 = java.net.URLDecoder.decode(path, "utf-8"); System.out.println(path1); return getDataFromExcel(path1); } @Test(dataProvider = "getData2") public void test1(String text1,String text2) { // 打印CSV数据 System.out.println(text1); System.out.println(text2); } }
不积跬步,无以致千里;不集小流,无以成江海。
如转载本文,请还多关注一下我的博客:https://www.cnblogs.com/Owen-ET/;
我的Github地址:https://github.com/Owen-ET————————————
无善无恶心之体, 有善有恶意之动, 知善知恶是良知, 为善去恶是格物。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App