/**
* 匯出專案所有資料
//匯出6萬以上資料。。。
int pagesiz= 50000;//設定每乙個excel檔案匯出的數量
int page;//頁數
//計算分頁
page = count/pagesiz+(count%pagesiz > 0 ? 1:0);
string auto_name = primarykeygenerator.getshortstringkey();//自動的生成乙個檔案碼
是在misc.properties配置檔案中配置的乙個上傳檔案的路徑,在這個路徑下建乙個資料夾
string folder = webutils.getmoduleproperty("upload.excel") + file.separator +auto_name+"_myfolder";
//如果資料夾已存在就刪除,可以根據需求安排是否進行刪除,按照我的需求我不需要刪除,因為我自動生成的檔案碼不會重複
//dropfolderorfile(new file(folder));
file myfolder = new file(folder);
myfolder.mkdir();
//開始從第一頁迴圈匯出乙個檔案到那個資料夾
for(int i = 0; i < page; i++)else if(corpquestionid != null && contactquestionid == null)else if(corpquestionid != null && contactquestionid != null)else if(contactquestionid == null && corpquestionid == null)
listexcelinfo = new arraylist();
excelinfo.add(header.toarray());
excelinfo.addall(pagevalues);
int j=i+1;
//一定要在迴圈裡建workbook,不然會造成資料堆積在記憶體,會溢位
hssfworkbook workbook = new hssfworkbook();
workbook = parser.getwritebook(excelinfo);
// system.gc();//什麼呀?這個不知道是什麼,注釋掉
//生成excel檔案
file f = new file(myfolder+file.separator+reporttitle+"_"+j+".xls");
if(f.exists())else
outputstream os = new fileoutputstream(f);
workbook.write(os);
os.flush();
os.close();
}zipfile(folder);//folder是之前獲取的資料夾路徑
stringbuilder uri = new stringbuilder();
}catch(exception e)
}/**
* 使用poi進行excel的寫入工作
* 注:此方法會在生成的excel工作表的最後多加一列,此列全部為空,不影響檢視,
* 但是對再次解析會有一定問題,再次解析這個生成的excel時poi會認為最後這個空列也是乙個有效列,
* 所以我們需要解析的時候處理一下。
* 這樣做的原因:
* 在使用jdbc-odbc的方式讀取excel時,用poi生成的excel的檔案的最後一列不被識別,
* 無奈之舉,在生成的excel後面多加一列空列,這樣使用jdbc-obdc讀取時就不會有問題了。
* 不過這也引出了上面的注意事項。其實,無論是不是poi生成的excel文件,都需要做類似的判斷的,
* 任何的解析器都不會知道這個空列是否有用,那麼必然會讀取出來由使用者來選擇是否保留。
* * @param values
* @throws ioexception
* ,filenotfoundexception
* @throws ioexception
* @throws
* @throws
* @throws exception
*/public hssfworkbook getwritebook(listvalues) throws ioexception,filenotfoundexception
row++;
}return wb;
}/**
* 刪除資料夾
* @param folder
*/private void dropfolderorfile(file file)
}file.delete();
}/**
* 將指定資料夾打包成zip
* @param folder
* @throws ioexception
*/private void zipfile(string folder) throws ioexception
zipoutputstream zipout = new zipoutputstream(new fileoutputstream(zipfile));
file dir = new file(folder);
file fs = dir.listfiles();
byte buf = null;
if(fs!=null)
zipout.flush();
origin.close();
fileinputstream.close(); }}
zipout.flush();
zipout.close();
}/**匯出
php 匯出excel大量資料方法
通過php輸出流方式匯出 php output是乙個可寫的輸出流,允許程式像操作檔案一樣將輸出寫入到輸出流中,php會把輸出流中的內容傳送給web伺服器並返回給發起請求的瀏覽器 儲存為csv檔案 csv是最通用的一種檔案格式,它可以非常容易地被匯入各種pc 及資料庫中,而xls則是excel專用格式...
EasyPoi 匯出大量資料
1 引入jia包 在pom.xml中引入一下jia包 cn.afterturn easypoi base 4.1.0 cn.afterturn easypoi web 4.1.0 cn.afterturn easypoi annotation 4.1.0 2 如下 一 controller請求 匯出...
Mysql匯出大量資料
outfile 匯出檔案 select name from t1 into outfile tmp test.txt infile 匯入檔案 匯入到表t1中的name列 load data infile tmp test.txt into table t1 name 匯入和匯出的時候可以關閉索引 正...