日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

JAVA導(dǎo)出CSV文件實(shí)例教程

瀏覽:28日期:2022-08-31 17:59:36

JAVA導(dǎo)出CSV文件實(shí)例教程

以前導(dǎo)出總是用POI導(dǎo)出為Excel文件,后來當(dāng)我了解到CSV以后,我發(fā)現(xiàn)速度飛快。

如果導(dǎo)出的數(shù)據(jù)不要求格式、樣式、公式等等,建議最好導(dǎo)成CSV文件,因?yàn)檎娴暮芸臁?/p>

雖然我們可以用Java再帶的文件相關(guān)的類去操作以生成一個(gè)CSV文件,但事實(shí)上有好多第三方類庫(kù)也提供了類似的功能。

這里我們使用apache提供的commons-csv組件

Commons CSV

文檔在這里

http://commons.apache.org/

http://commons.apache.org/proper/commons-csv/

http://commons.apache.org/proper/commons-csv/user-guide.html

先看一下具體用法

@Test public void testWrite() throws Exception { FileOutputStream fos = new FileOutputStream('E:/cjsworkspace/cjs-excel-demo/target/abc.csv'); OutputStreamWriter osw = new OutputStreamWriter(fos, 'GBK'); CSVFormat csvFormat = CSVFormat.DEFAULT.withHeader('姓名', '年齡', '家鄉(xiāng)'); CSVPrinter csvPrinter = new CSVPrinter(osw, csvFormat);// csvPrinter = CSVFormat.DEFAULT.withHeader('姓名', '年齡', '家鄉(xiāng)').print(osw); for (int i = 0; i < 10; i++) { csvPrinter.printRecord('張三', 20, '湖北'); } csvPrinter.flush(); csvPrinter.close(); } @Test public void testRead() throws IOException { InputStream is = new FileInputStream('E:/cjsworkspace/cjs-excel-demo/target/abc.csv'); InputStreamReader isr = new InputStreamReader(is, 'GBK'); Reader reader = new BufferedReader(isr); CSVParser parser = CSVFormat.EXCEL.withHeader('name', 'age', 'jia').parse(reader);// CSVParser csvParser = CSVParser.parse(reader, CSVFormat.DEFAULT.withHeader('name', 'age', 'jia')); List<CSVRecord> list = parser.getRecords(); for (CSVRecord record : list) { System.out.println(record.getRecordNumber() + ':' + record.get('name') + ':' + record.get('age') + ':' + record.get('jia')); } parser.close(); } /** * Parsing an Excel CSV File */ @Test public void testParse() throws Exception { Reader reader = new FileReader('C:/Users/Administrator/Desktop/abc.csv'); CSVParser parser = CSVFormat.EXCEL.parse(reader); for (CSVRecord record : parser.getRecords()) { System.out.println(record); } parser.close(); } /** * Defining a header manually */ @Test public void testParseWithHeader() throws Exception { Reader reader = new FileReader('C:/Users/Administrator/Desktop/abc.csv'); CSVParser parser = CSVFormat.EXCEL.withHeader('id', 'name', 'code').parse(reader); for (CSVRecord record : parser.getRecords()) { System.out.println(record.get('id') + ',' + record.get('name') + ',' + record.get('code')); } parser.close(); } /** * Using an enum to define a header */ enum MyHeaderEnum { ID, NAME, CODE; } @Test public void testParseWithEnum() throws Exception { Reader reader = new FileReader('C:/Users/Administrator/Desktop/abc.csv'); CSVParser parser = CSVFormat.EXCEL.withHeader(MyHeaderEnum.class).parse(reader); for (CSVRecord record : parser.getRecords()) { System.out.println(record.get(MyHeaderEnum.ID) + ',' + record.get(MyHeaderEnum.NAME) + ',' + record.get(MyHeaderEnum.CODE)); } parser.close(); } private List<Map<String, String>> recordList = new ArrayList<>(); @Before public void init() { for (int i = 0; i < 5; i++) { Map<String, String> map = new HashMap<>(); map.put('name', 'zhangsan'); map.put('code', '001'); recordList.add(map); } } @Test public void writeMuti() throws InterruptedException { ExecutorService executorService = Executors.newFixedThreadPool(3); CountDownLatch doneSignal = new CountDownLatch(2); executorService.submit(new exprotThread('E:/0.csv', recordList, doneSignal)); executorService.submit(new exprotThread('E:/1.csv', recordList, doneSignal)); doneSignal.await(); System.out.println('Finish!!!'); } class exprotThread implements Runnable { private String filename; private List<Map<String, String>> list; private CountDownLatch countDownLatch; public exprotThread(String filename, List<Map<String, String>> list, CountDownLatch countDownLatch) { this.filename = filename; this.list = list; this.countDownLatch = countDownLatch; } @Override public void run() { try { CSVPrinter printer = new CSVPrinter(new FileWriter(filename), CSVFormat.EXCEL.withHeader('NAME', 'CODE')); for (Map<String, String> map : list) { printer.printRecord(map.values()); } printer.close(); countDownLatch.countDown(); } catch (IOException e) { e.printStackTrace(); } } }

CSV與EXCEL

/** * 測(cè)試寫100萬(wàn)數(shù)據(jù)需要花費(fèi)多長(zhǎng)時(shí)間 */ @Test public void testMillion() throws Exception { int times = 10000 * 10; Object[] cells = {'滿100減15元', '100011', 15}; // 導(dǎo)出為CSV文件 long t1 = System.currentTimeMillis(); FileWriter writer = new FileWriter('G:/test1.csv'); CSVPrinter printer = CSVFormat.EXCEL.print(writer); for (int i = 0; i < times; i++) { printer.printRecord(cells); } printer.flush(); printer.close(); long t2 = System.currentTimeMillis(); System.out.println('CSV: ' + (t2 - t1)); // 導(dǎo)出為Excel文件 long t3 = System.currentTimeMillis(); XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet(); for (int i = 0; i < times; i++) { XSSFRow row = sheet.createRow(i); for (int j = 0; j < cells.length; j++) { XSSFCell cell = row.createCell(j); cell.setCellValue(String.valueOf(cells[j])); } } FileOutputStream fos = new FileOutputStream('G:/test2.xlsx'); workbook.write(fos); fos.flush(); fos.close(); long t4 = System.currentTimeMillis(); System.out.println('Excel: ' + (t4 - t3)); }

Maven依賴

<dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-csv</artifactId> <version>1.5</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency></dependencies>

最后,剛才的例子中只寫了3個(gè)字段,100萬(wàn)行,生成的CSV文件有十幾二十兆,太多的話建議分多個(gè)文件打包下周,不然想象一個(gè)打開一個(gè)幾百兆的excel都費(fèi)勁。

以上就是JAVA導(dǎo)出CSV文件實(shí)例教程的詳細(xì)內(nèi)容,更多關(guān)于JAVA導(dǎo)出CSV文件的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美男人天堂| 国产精品嫩草99av在线| 日韩av午夜在线观看| 亚洲精品美女| 日本午夜精品| 九九九精品视频| 中文字幕在线高清| 99久久99久久精品国产片果冰| 日韩高清中文字幕一区二区| 极品日韩av| 综合干狼人综合首页| 国产一级成人av| 国产精品片aa在线观看| 国产一区二区三区不卡视频网站 | 国产精品亚洲一区二区三区在线观看| 日韩免费福利视频| 9色国产精品| 久久国产三级精品| 日韩网站中文字幕| 伊人久久大香伊蕉在人线观看热v| 蜜臀91精品一区二区三区| 日本欧美在线| yellow在线观看网址| 五月天久久777| 欧美三级第一页| 五月天av在线| 日欧美一区二区| 91视频久久| 免费成人在线观看| 日韩成人精品一区| 日韩精品一卡二卡三卡四卡无卡| 国产精品白丝一区二区三区| 欧美精品高清| 日韩精品免费视频一区二区三区 | 国产欧洲在线| 亚洲影院天堂中文av色| 韩国一区二区三区视频| 先锋亚洲精品| 亚洲深夜视频| 青草久久视频| 欧美日韩精品一本二本三本 | 国产欧美啪啪| 激情五月综合网| 国产精品探花在线观看| 一区二区三区视频免费观看| 一区二区不卡| 久久精品播放| 欧美aⅴ一区二区三区视频| 99视频在线精品国自产拍免费观看| 国产欧美精品久久| 中文亚洲免费| 精品国产一区二区三区av片| 爽好多水快深点欧美视频| 91麻豆国产自产在线观看亚洲| 日韩精彩视频在线观看| 国产91精品对白在线播放| 国产欧美日韩一区二区三区在线| 伊人久久大香线蕉av超碰演员| 久久精品国产网站| 视频一区中文| 精品国产欧美日韩| 日韩精品中文字幕吗一区二区| 亚洲成人国产| 精品淫伦v久久水蜜桃| 亚洲啊v在线免费视频| 国内精品福利| 亚洲成人不卡| 国产99在线| 精品精品久久| 国产精品视频一区二区三区四蜜臂| 久久久久国产精品一区三寸| 里番精品3d一二三区| 日韩黄色av| 水蜜桃久久夜色精品一区的特点| 99热精品久久| 精品一区视频| 91嫩草精品| 日韩视频一二区| 免费精品视频最新在线| 亚洲精品888| 国产一区欧美| 激情婷婷欧美| 成人av二区| 亚洲午夜久久久久久尤物 | 国产精品亚洲欧美| 欧美日韩99| 欧美日韩视频免费看| 欧美另类中文字幕| 亚洲三区欧美一区国产二区| 日韩视频不卡| 在线亚洲免费| 午夜在线精品偷拍| 免费成人在线影院| 免费成人在线影院| 日本一区二区三区视频在线看| 婷婷综合成人| 国产日韩一区二区三区在线| 国产伦精品一区二区三区在线播放| 日本午夜免费一区二区 | 亚洲欧美网站| 亚洲免费影视| 中文字幕一区二区av| 中文字幕av一区二区三区四区| 国产农村妇女精品一二区| 久久国产精品久久w女人spa| 在线观看亚洲精品福利片| 色婷婷成人网| 日韩不卡手机在线v区| 日韩av在线播放中文字幕| 国产精品日本一区二区三区在线| 久久久久伊人| 日韩欧美精品综合| 欧美aa国产视频| 亚洲免费婷婷| 国产欧美自拍| 精品免费视频| 欧美亚洲在线日韩| 亚洲欧美日韩视频二区| 日韩综合小视频| 国产极品久久久久久久久波多结野| 国产精品22p| 99精品综合| 亚洲精品国产精品粉嫩| 久久麻豆视频| 九九久久电影| 日本精品在线播放| 日韩av二区| 性欧美长视频| 国产日产精品_国产精品毛片 | 中文字幕日韩欧美精品高清在线| 日本在线不卡视频| 国产一区二区三区久久| 亚洲经典在线| 国产精品免费99久久久| 在线手机中文字幕| 爽爽淫人综合网网站| 国产精品亚洲产品| 精品中文字幕一区二区三区av| 日韩一区二区三区高清在线观看| 精品一区二区三区免费看| 久久蜜桃av| 国产亚洲精品美女久久久久久久久久| 日韩欧美二区| 日韩精品一区二区三区中文在线| 国产精品18| 99pao成人国产永久免费视频| 欧美中文高清| 一区二区小说| 久久成人高清| 亚洲主播在线| 91麻豆国产自产在线观看亚洲| 久久最新视频| 老牛影视精品| 欧美一区二区三区免费看| 99久久夜色精品国产亚洲狼| 91午夜精品| 野花国产精品入口| 成人精品视频| 婷婷综合国产| 性欧美69xoxoxoxo| 国内在线观看一区二区三区 | 午夜日本精品| 精品国产亚洲日本| 日本在线不卡视频一二三区| 99精品视频在线| 精品午夜av| 欧美一区二区三区久久| 在线亚洲国产精品网站| 黄毛片在线观看| 国产精品超碰| 日韩美女国产精品| 激情综合自拍| 中文字幕成在线观看| 日韩一区网站| 免费日韩视频| 今天的高清视频免费播放成人| 狠狠久久伊人| 国产欧美日韩| 日韩高清在线一区| 蜜臀久久久99精品久久久久久| 91精品国产调教在线观看| 美女视频免费精品| 欧美久久亚洲| 日韩在线黄色| 亚洲精品国产日韩| 久久av在线| 香蕉人人精品| 欧美www视频在线观看| 国产精品jk白丝蜜臀av小说| 日本午夜精品一区二区三区电影 | 精品一区二区三区免费看| 日韩福利视频网| 日本国产亚洲| 91精品国产自产在线丝袜啪| 亚洲精选成人| 亚洲精品看片| 日韩久久99| 少妇高潮一区二区三区99| 亚洲开心激情| 日韩**一区毛片|