導航:首頁 > 編程語言 > 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相關的資料

熱點內容
伺服器無響應是什麼原因呀 瀏覽:982
wd文檔里的app怎麼製作 瀏覽:511
電腦里的文件夾沒有了一般能恢復嗎 瀏覽:416
哪裡有配加密鑰匙的 瀏覽:208
伺服器開不了機怎麼把數據弄出來 瀏覽:958
gif動態圖片怎麼壓縮 瀏覽:519
黑猴子棒球壓縮文件解壓密碼 瀏覽:631
如何讓app適應不同的手機屏幕大小 瀏覽:8
蘋果手機如何給安卓手機分享軟體 瀏覽:759
蘋果電腦怎麼運行騰訊雲伺服器 瀏覽:59
明日之後沙石堡命令助手 瀏覽:261
蛋糕店用什麼樣的app 瀏覽:877
長安銀行信用卡app怎麼取現 瀏覽:635
dos命令cmd命令的 瀏覽:226
阿里雲存檔視頻文件的伺服器 瀏覽:194
ftp修改文件許可權命令 瀏覽:491
周易八卦梅花演算法 瀏覽:676
java組織機構 瀏覽:953
h5大轉盤游戲源碼 瀏覽:592
學校伺服器地址查詢 瀏覽:109