java往csv檔案中匯出百萬級資料
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.List;
import jxl.Workbook;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import com.hcycom.bean.MonthValue;
import com.hcycom.page.page;
import com.hcycom.service.Data;
public class Excel {
//static String url = "/opt/apache-tomcat-6.0.37/file/";
static String url = "D:/opt/apache-tomcat-6.0.37/file/";
Data data;
public void setExcel(String leixing, String name,page pg) {
if ("excel".equals(leixing)) {
wenjian(pg, name);
}
if ("cvs".equals(leixing)||"plCSV".equals(leixing)) {
wenJianCsv(pg, name);
}
if ("txt".equals(leixing)) {
wenJianTxt(pg, name);
}
}
public void setExcelCSV(String name,List<MonthValue> list) {
wenJianPLCsv(list, name);
}
public void wenJianPLCsv(List<MonthValue> list, String name) { //匯出百萬條資料name是檔名 list是資料
try {
File file = new File(url + name + ".csv");
if(!file.exists()){
System.out.println("建立檔案!!!");
file.createNewFile();
}
writeFileContent(url + name + ".csv", list);
/*FileOutputStream stream;// provides file access
OutputStreamWriter writer;// writes to the file
stream = new FileOutputStream(file);
writer = new OutputStreamWriter(stream, "gb2312");
for (int q = 0; q < list.size(); q++) {
writer.write(list.get(q).getAqi());
writer.write(list.get(q).getSO2());
writer.write("\r\n");
}
writer.close();
stream.close();*/
} catch (IOException e1) {
e1.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static boolean writeFileContent(String filepath,List<MonthValue> list) throws IOException{
Boolean bool = false;
String temp = "";
FileInputStream fis = null;
InputStreamReader isr = null;
BufferedReader br = null;
FileOutputStream fos = null;
PrintWriter pw = null;
try {
File file = new File(filepath);//檔案路徑(包括檔名稱)
//將檔案讀入輸入流
fis = new FileInputStream(file);
isr = new InputStreamReader(fis);
br = new BufferedReader(isr);
StringBuffer buffer = new StringBuffer();
int i;
//檔案原有內容
for(i=0;(temp =br.readLine())!=null;i++){
buffer.append(temp);
// 行與行之間的分隔符 相當於“\n”
buffer = buffer.append(System.getProperty("line.separator"));
}
for (int q = 0; q < list.size(); q++) {
buffer.append(list.get(q).getId()+",");
buffer.append(list.get(q).getTime_point()+",");
buffer.append(list.get(q).getAqi()+",");
buffer.append(list.get(q).getArea()+",");
buffer.append(list.get(q).getPosition_name()+",");
buffer.append(list.get(q).getStation_code()+",");
buffer.append(list.get(q).getSO2()+",");
buffer.append(list.get(q).getNO2()+",");
buffer.append(list.get(q).getCO()+",");
buffer.append(list.get(q).getO3()+",");
buffer.append(list.get(q).getPM2_5()+",");
buffer.append(list.get(q).getPM10()+",");
buffer.append(list.get(q).getPrimary_pollutant().replaceAll(",", ",")+",");
buffer.append(list.get(q).getQuality()+" \r\n");
}
fos = new FileOutputStream(file);
pw = new PrintWriter(fos);
pw.write(buffer.toString().toCharArray());
pw.flush();
bool = true;
} catch (Exception e) {
e.printStackTrace();
}finally {
//不要忘記關閉
if (pw != null) {
pw.close();
}
if (fos != null) {
fos.close();
}
if (br != null) {
br.close();
}
if (isr != null) {
isr.close();
}
if (fis != null) {
fis.close();
}
}
return bool;
}
public void wenjian(page pg, String name){ //這是一次導數EXCLE檔案
jxl.write.WritableWorkbook wwb = null;
try {
System.out.println("excel action wenjian name:"+name);
List<List<String>> list = pg.getListl();
File file = new File(url + ""+name+".xls");
System.out.println("url:"+file.getAbsolutePath()+"\n "+file.toString());
file.delete();
wwb = Workbook.createWorkbook(file);
WritableFont font3 = new WritableFont(
WritableFont.createFont("宋體"), 12, WritableFont.NO_BOLD);
WritableCellFormat f = new WritableCellFormat(font3);
jxl.write.WritableSheet ws = wwb.createSheet("Sheet1", 0);
ws.setColumnView(0, 45); // 設定列的寬度
ws.setColumnView(1, 20); // 設定列的寬度
ws.setColumnView(2, 30); // 設定列的寬度
ws.setColumnView(3, 15); // 設定列的寬度
ws.setColumnView(4, 15); // 設定列的寬度
ws.setColumnView(5, 15); // 設定列的寬度
ws.setColumnView(6, 15); // 設定列的寬度
ws.setColumnView(7, 15); // 設定列的寬度
ws.setColumnView(8, 15); // 設定列的寬度
ws.setColumnView(9, 15); // 設定列的寬度
ws.setColumnView(10, 30); // 設定列的寬度
ws.setColumnView(11, 30); // 設定列的寬度
for (int q = 0; q < list.size(); q++) {
for (int w = 1; w < list.get(q).size(); w++) {
if (!"0".equals(list.get(q).get(w))) {
jxl.write.Label labelC = new jxl.write.Label(w - 1, q,
list.get(q).get(w), f);
ws.addCell(labelC);
} else {
jxl.write.Label labelC = new jxl.write.Label(w - 1, q,
"-", f);
ws.addCell(labelC);
}
}
}
wwb.write();
wwb.close();
} catch (Exception e) {
try {
wwb.close();
} catch (Exception e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
}
public void wenJianCsv(page pg, String name) { //匯出
try {
System.out.println("pa:"+pg);
File file = new File(url + name + ".csv");
file.createNewFile();
List<List<String>> list = pg.getListl();
FileOutputStream stream;// provides file access
OutputStreamWriter writer;// writes to the file
stream = new FileOutputStream(file);
writer = new OutputStreamWriter(stream, "gb2312");
for (int q = 0; q < list.size(); q++) {
for (int w = 1; w < list.get(q).size(); w++) {
if (w == 1) {
if (!"0".equals(list.get(q).get(w))) {
writer.write(list.get(q).get(w));
} else {
writer.write("-");
}
} else {
if (!"0".equals(list.get(q).get(w))) {
writer.write("," + list.get(q).get(w));
} else {
writer.write("," + "-");
}
}
}
writer.write("\r\n");
}
writer.close();
stream.close();
} catch (IOException e1) {
} catch (Exception e) {
e.printStackTrace();
}
}
public void wenJianTxt(page pg, String name) { //匯出text檔案
try {
File file = new File(url + name + ".txt");
file.createNewFile();
List<List<String>> list = pg.getListl();
FileOutputStream stream;// provides file access
OutputStreamWriter writer;// writes to the file
stream = new FileOutputStream(file);
writer = new OutputStreamWriter(stream, "gb2312");
for (int q = 0; q < list.size(); q++) {
for (int w = 1; w < list.get(q).size(); w++) {
if (w == 1) {
if (!"0".equals(list.get(q).get(w))) {
writer.write(list.get(q).get(w));
} else {
writer.write("-");
}
} else {
if (!"0".equals(list.get(q).get(w))) {
writer.write("," + list.get(q).get(w));
} else {
writer.write("," + "-");
}
}
}
writer.write("\r\n");
}
writer.close();
} catch (IOException e1) {
} catch (Exception e) {
e.printStackTrace();
}
}
public Data getData() {
return data;
}
public void setData(Data data) {
this.data = data;
}
}
相關推薦
java往csv檔案中匯出百萬級資料
package com.hcycom.action; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputS
php - 從資料庫匯出百萬級資料(CSV檔案)
將資料庫連線資訊、查詢條件、標題資訊替換為真實資料即可使用。 <?php set_time_limit(0); ini_set('memory_limit', '128M'); $fileName = date('YmdHis', time()); header('Content-
Java從CSV檔案中讀取資料和寫入
.CSV檔案是以逗號分割的資料倉儲,讀取資料時從每一行中讀取一條資料元祖,也就是一條資料,再用字元分割的方式獲取表中的每一個數據項。 package com.conn.csv;
PHP百萬級資料匯出方案(多csv檔案壓縮)
概述: 最近公司專案要求把資料除了頁面輸出也希望有匯出功能,雖然之前也做過幾個匯出功能,但這次資料量相對比較大,差不多一天資料就20W條,要求導7天或者30天,那麼資料量就輕鬆破百萬了甚至破千萬,因此開發的過程中發現了一些大資料匯出的坑,在此跟大家分享一下,
PHP百萬級資料匯出csv格式OR文字格式
廢話不說,先來上一個小小的DEMO <?php header('Content-Type: text/csv'); header('Content-Transfer-Encoding: binary'); for($i=0;$i<500000;$i++){ ech
Java下將資料寫入CSV檔案中
import java.io.*; import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.uti
java實現如何將百萬級資料高效的匯出到Excel表單
ps: 首先科普一下基礎知識 Excel 2003及以下的版本。一張表最大支援65536行資料,256列。也就是說excel2003完全不可能滿足百萬資料匯出的需求。 Excel 2007-2010版本。一張表最大支援1048576行,16384列; 筆者使用的是off
Java對CSV檔案加密後匯入匯出功能小結
技術總結 本次做CSV檔案的加密後的匯入匯出功能,遇到的問題。在這裡做個總結,以備不時之需。 1. 加密 加密採用的是DES加密,整個加密類貼出來。 package com.lddsm.util; import java.io.FileInputStream;
java中如何設定.csv檔案中時間的格式
csv是逗號分割值得縮寫,不可以定義單元格格式,所以匯出來的檔案,如下圖,時間格式不完整,想了半天, 給時間前面拼接一個製表符程式碼如下圖 匯出來的時間就是yyyy-mm-dd hh:mm:ss的完整格式,
java 分頁匯出百萬級資料到excel,分頁實現
最近修改了一個匯出員工培訓課程的歷史記錄(一年資料),匯出功能本來就有的,不過前臺做了時間限制(只能選擇一個月時間內的),還有一些必選條件, 匯出的資料非常有侷限性。心想:為什麼要做出這麼多條件限制呢?條件限制無所謂了,能限制匯出資料的準確性,但是時間? 如果我想匯出一年的資料,還要一月一月的去匯出,這也太扯
在 Laravel 5 中使用 Laravel Excel 實現 Excel/CSV 檔案匯入匯出功能
1、簡介Laravel Excel 在 Laravel 5 中整合 PHPOffice 套件中的 PHPExcel,從而方便我們以優雅的、富有表現力的程式碼實現Excel/CSV檔案的匯入和匯出。本文我們將在Laravel中使用Laravel Excel簡單實現Excel檔案
java讀取分片msyql資料到csv檔案中
java讀取分片msyql資料到csv檔案當中 public class demoTest { @Test public void testDemo1() { ApplicationContext context = new
如何用java讀取csv檔案指定行列的資料,並將csv中資料元素隨機置零後儲存到另一個csv檔案中
這個流程可以大致分為兩步驟:1.讀取csv檔案中的資料2.生成隨機數,將csv的資料隨機置零,將新生成的檔案儲存到新的csv中一、首先我們進行第一步:讀取csv中的檔案:讀取函式格式為public static double readin(int row,int col)
java將資料寫入到csv檔案中
對於csv檔案,因為要將資料分別的寫入到每一個單元格中。用什麼來分開當前單元格和下一個單元格之間呢?這裡就用到了“ , ”逗號可以分割單元格。 舉例說明: 我們這裡用一個輸出流將資料寫入到csv檔案中 FileOutputStream fos=new FileOu
SSM整合開發之CSV檔案匯入匯出實戰-鍾林森-專題視訊課程
SSM整合開發之CSV檔案匯入匯出實戰—65人已學習 課程介紹 本課程將給大家分享如何基於SSM實現CSV檔案的匯入匯出,並講解目前企業級JavaWeb應用mvc三層模式的開發流程,
從CSV檔案中讀取jpg圖片的URL地址並多執行緒批量下載
很多時候,我們的網站上傳圖片時並沒有根據內容進行資料夾分類,甚至會直接儲存到阿里雲的OSS或是七牛雲等雲端儲存上。這樣,當我們需要打包圖片時,就需要從資料庫找尋分類圖片,通過CURL進行下載。我最近剛剛完成了一個這樣的任務,覺得會比較常用,就把程式放到了github上分享給大家,希望大家能夠喜歡。 do
Java讀取CSV檔案(CSV檔案資料內容包含逗號處理)
文章目錄 0. 前言 1. 解決方案 2. 程式碼片段 0. 前言 最近在公司寫專案時,有個匯入csv格式檔案資料的需求。Java讀取csv檔案時預設是按照 ,[英文逗號]分割的
JAVA使用POI如何匯出百萬級別資料(轉載)
用過POI的人都知道,在POI以前的版本中並不支援大資料量的處理,如果資料量過多還會常報OOM錯誤,這時候調整JVM的配置引數也不是一個好對策(注:jdk在32位系統中支援的記憶體不能超過2個G,而在64位中沒有限制,但是在64位的系統中,效能並不是太好),好在POI3.8版本新出來了一個SXSSFWorkb
Java 讀取csv檔案拼sql語句
主要用於sql語句的生成,可以舉一反三來做點其他事情。。。。 public static void main(String[] args) { String oracleSql="insert into 表名 "+"(id,欄位1,欄位2) values(%v)"; Stri
手把手教你如何用Python從PDF檔案中匯出資料(附連結)
有很多時候你會想用Python從PDF中提取資料,然後將其匯出成其他格式。不幸的是,並沒有多少Python包可以很好的執行這部分工作。在這篇貼子中,我們將探討多個不同的Python包,並學習如何從PDF中提取某些圖片。儘管在Python中沒有一個完整的解決方案,你還是應該能夠運用這裡的技能開始上手。