導航:首頁 > 編程語言 > javapoiexcel2007

javapoiexcel2007

發布時間:2022-07-19 23:12:53

java poi Excel2007以上的版本導入資料庫 數據量大 內存溢出如何解決

記得有個屬性,

POI3.8的SXSSF包是XSSF的一個擴展版本,支持流處理,在生成大數據量的電子表格且堆空間有限時使用。SXSSF通過限制內存中可訪問的記錄行數來實現其低內存利用,當達到限定值時,新一行數據的加入會引起老一行的數據刷新到硬碟。
比如內存中限制行數為100,當行號到達101時,行號為0的記錄刷新到硬碟並從內存中刪除,當行號到達102時,行號為1的記錄刷新到硬碟,並從內存中刪除,以此類推。
rowAccessWindowSize代表指定的內存中緩存記錄數,默認為100,此值可以通過
new SXSSFWorkbook(int rowAccessWindowSize)或SXSSFSheet.setRandomAccessWindowSize(int windowSize)來設置。

② java poi讀取Excel2007 的問題

你的郵箱 被服務商限制,超過1兆的郵件都收不了。。。。。。.jar包有1.4兆。
我都編輯好了,看到速度給我發QQ郵件: [email protected] ,我再重新給你郵

③ java poi怎麼導入excel數據

package poi;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ReadExcel001 {
public static void main(String[] args) {
readXml("D:/test.xlsx");
System.out.println("-------------");
readXml("d:/test2.xls");
}
public static void readXml(String fileName){
boolean isE2007 = false; //判斷是否是excel2007格式
if(fileName.endsWith("xlsx"))
isE2007 = true;
try {
InputStream input = new FileInputStream(fileName); //建立輸入流
Workbook wb = null;
//根據文件格式(2003或者2007)來初始化
if(isE2007)
wb = new XSSFWorkbook(input);
else
wb = new HSSFWorkbook(input);
Sheet sheet = wb.getSheetAt(0); //獲得第一個表單
Iterator<Row> rows = sheet.rowIterator(); //獲得第一個表單的迭代器
while (rows.hasNext()) {
Row row = rows.next(); //獲得行數據
System.out.println("Row #" + row.getRowNum()); //獲得行號從0開始
Iterator<Cell> cells = row.cellIterator(); //獲得第一行的迭代器
while (cells.hasNext()) {
Cell cell = cells.next();
System.out.println("Cell #" + cell.getColumnIndex());
switch (cell.getCellType()) { //根據cell中的類型來輸出數據
case HSSFCell.CELL_TYPE_NUMERIC:
System.out.println(cell.getNumericCellValue());
break;
case HSSFCell.CELL_TYPE_STRING:
System.out.println(cell.getStringCellValue());
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
System.out.println(cell.getBooleanCellValue());
break;
case HSSFCell.CELL_TYPE_FORMULA:
System.out.println(cell.getCellFormula());
break;
default:
System.out.println("unsuported sell type");
break;
}
}
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}

參考自http://blog.csdn.net/shuwei003/article/details/6741649

④ java poi Excel2007里的SXSSFWorkbook怎樣讀取文件 SXSSFWorkbook只能寫嗎,那怎樣獲得要寫的內容

Notes是一個具有Id , RuleID , MainId 屬性的javaBean.

public static List<Notes> readFromXLS2007(String filePath) {
File excelFile = null;// Excel文件對象
InputStream is = null;// 輸入流對象
String cellStr = null;// 單元格,最終按字元串處理
List<Notes> NotesList = new ArrayList<Notes>();// 返回封裝數據的List
Notes Notes = null;// 每一個Notes對象
try {
excelFile = new File(filePath);
is = new FileInputStream(excelFile);// 獲取文件輸入流
XSSFWorkbook workbook2007 = new XSSFWorkbook(is);// 創建Excel2007文件對象
XSSFSheet sheet = workbook2007.getSheetAt(0);// 取出第一個工作表,索引是0
// 開始循環遍歷行,表頭不處理,從1開始
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
Notes = new Notes();// 實例化Notes對象
XSSFRow row = sheet.getRow(i);// 獲取行對象
if (row == null) {// 如果為空,不處理
continue;
}
// 循環遍歷單元格
for (int j = 0; j < row.getLastCellNum(); j++) {
XSSFCell cell = row.getCell(j);// 獲取單元格對象
if (cell == null) {// 單元格為空設置cellStr為空串
cellStr = "";
} else if (cell.getCellType() == XSSFCell.CELL_TYPE_BOOLEAN) {// 對布爾值的處理
cellStr = String.valueOf(cell.getBooleanCellValue());
} else if (cell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC) {// 對數字值的處理
cellStr = cell.getNumericCellValue() + "";
} else {// 其餘按照字元串處理
cellStr = cell.getStringCellValue();
}
// 下面按照數據出現位置封裝到bean中
if (j == 0) {
Notes.setId(new Double(cellStr).intValue());
} else if (j == 1) {
Notes.setRuleId(new Double(cellStr).intValue());
} else if (j == 2) {
Notes.setMainId(new Double(cellStr).intValue());
}
}
NotesList.add(Notes);// 數據裝入List
}
} catch (IOException e) {
e.printStackTrace();
} finally {// 關閉文件流
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return NotesList;
}
}

閱讀全文

與javapoiexcel2007相關的資料

熱點內容
腰椎壓縮性骨折吧 瀏覽:324
安卓怎麼把軟體改成火影忍者 瀏覽:702
手機如何切換軟體商店伺服器 瀏覽:325
江蘇省python二級題型 瀏覽:231
文件編譯器在哪 瀏覽:26
選擇目錄時此電腦的文件夾怎麼刪 瀏覽:25
狗狗幣加密支付服務 瀏覽:897
怎麼使用指南針APP確定方向 瀏覽:372
php讀取圖片並輸出 瀏覽:321
如何組合多個pdf文件 瀏覽:669
工作表格excel取消加密 瀏覽:133
真空壓縮袋手泵怎麼用 瀏覽:426
鏡面的命令 瀏覽:203
51單片機藍牙模塊有延遲 瀏覽:115
b解壓葯 瀏覽:569
跳空缺口指標源碼怎麼寫 瀏覽:701
怎麼殺掉伺服器上所有進程 瀏覽:180
c語言中水仙花數的演算法分析 瀏覽:495
心煩時玩兒的解壓神器 瀏覽:497
linux安裝的庫文件 瀏覽:920