導航:首頁 > 網路數據 > 大數據excel文件讀取

大數據excel文件讀取

發布時間:2023-05-23 10:35:22

1. 如何用java讀取大數據量的EXCEL文件

用FileInputStream就能讀取任何格式的文件。可以復制文件。
但是如果你想通過自己寫的程序處理文件里的內容是不現實的,因為每種文件都有設計者設計好的格式。

2. C#讀取大數據量Excel,60W行數據,該怎麼處理

系統的函數 別自己循環~
將工作表Sheet1的內專容讀取到DataSet
屬string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/test.xls;"+
"Extended Properties='Excel 8.0'";
DataSet ds = new DataSet();
OleDbDataAdapter oada = new OleDbDataAdapter("select * from [Sheet1$]", strConn);
oada.Fill(ds);

3. 如何把大量數據導入EXCEL

1。用word打開txt文件
2。ctrl+h 將空格替換為段落標記(^p),注意連續空格的處理。
3。保存為txt文件
4。excel中,按你上面方法導入。

4. 您好,請問我想逐行的讀取excel表格中的數據該怎麼做呢

MATLAB提供讀取excel文件的系統函數xlsread,其主要的調用形式為:a=xlsread('filename.xls'),其中a表示讀入文件所保存的變數名稱,filename.xls(或者filename.xlsx)表示excel數據文件名。然後對a進行操作即可。

5. 如何利用excel讀取xml大數據文件

給你一種抄jsp的方法 在JSP中如何把xml文件中的數據導出到excel中,其實就是通過Java如何把xml中的數據導出到excel中。 要解決這個問題分為兩步。 第一步,通過java把數據從xml文件中讀出來。

6. EXCEL表格數據太大運行很卡,怎樣處理

解決辦法如下:抄

1、首先,單擊計算機左下角的[開始]按鈕找到[所有程序]選項,如下圖所示,然後進入下一步。

7. QT 如何讀取大數據量的Excel文件

  1. 貌似Excel最多隻有1048576行,你這150萬行我不知道是怎麼放到一個表裡面的。

  2. 數據100多玩行你可以將數據存放在Access或者其他的資料庫中或許會比較好一點。

8. 實時生成並下載大數據量的EXCEL文件,用PHP如何實現

對於任何一個網站肯定是少不了下載功能,常見的下載功能有圖片、視頻、Excel表格,如果文件比較小的話,那麼不會遇到任何的問題,但是當文件信息而超明銀過了PHP的最大內存,那麼在這個時候它就會有的內存溢出的問題。

那麼它們是因為什麼而發生的?對於這個過程的原理才是埋碧我們應該真正要去弄明白的事情

下載大數據量的EXCEL文件為何要報錯?

PHP在下載大Excel表格的時候,那麼首先它是需要去把MySQL的數據從硬碟上面讀取到內存,但讀取它是一次性載入到我們的內存,如果說它一次性載入的數據量遠遠大於最大內存,然後再來執行瀏覽器的業務下載。那麼這個時候它就會發生我們這個內存溢出。

就比如:說我們現在有100M的數據量,但是我們PHP內存最大隻有64M,那麼這個它肯定是裝不了的,我們可以把那個內存比喻為一個水杯,這個水杯的容量比喻為內存,現在杯子最大容量為64L。你要存放100L。肯定放不下

大事化小,小事化了。拆分成段

從上面可以看到文件下載,它是分為兩步,首先是載入內存然後執行瀏覽器的輸出下載,那麼既然大型文件一次性載入不了,那可以採用「大事化小,小事化了」思路,我們可以實現邊寫邊下載,也激液宴就是分批次的讀取與寫入。

因為用戶的話,只要最終拿到這個文件就可以,對於瀏覽器的下載原理不需要關心。只需要給到文件下載提示給用戶即可,然後後端在實時的分批次的寫入到要下載的文件當中。

實現思路步驟:

1、一設置瀏覽器下載Excel需要的Header

2、打開php://output流,並設置寫入文件句柄。

註:(php://output,是一個可寫的輸出流,允許程序像操作文件一樣將輸出寫入到輸出流中,PHP會把輸出流中的內容發送給web伺服器並返回給發起請求的瀏覽器)

3、獲取資料庫所有數據量,並設置每次查詢的條數,通過這兩個值計算分批查詢的次數

4、基於分批查詢的次數循環查詢資料庫,然後寫入到文件中,同時清除本次操作變數內存,刷新緩沖到瀏覽器,讓瀏覽器的文件始終實時保持到最新的大小

註:刷新用ob_flush、flush()

PHP的I/O流

在這里我們用到了PHP的一個IO的輸入輸出,也就是我們常用的

php://inputphp://output。

php://input

php://input可以讀取原始的POST數據。相較於$form-data」.

註:p>

php://output是一個只寫的數據流,允許你以print和echo一樣的方式寫入到輸出緩沖區。

綜上:實現思維與原理很重要如有感悟,歡迎在線咨詢

9. java怎麼讀取很大的excel(20w條數據),怎麼通過位元組流獲取到單元格的內容

使用java poi
package webservice;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class ExcelController {

@SuppressWarnings("deprecation")
public void excel() throws FileNotFoundException, IOException{

String filename = "d:\\excel.xls";
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(filename));
//按名引用excel工作表
// HSSFSheet sheet = workbook.getSheet("JSP");
//也可以用以下方式來獲取excel的工作表,採用工作表的索引值
HSSFSheet sheet = workbook.getSheetAt(0);
HSSFRow row ;
HSSFCell cell1;
int rows=sheet.getLastRowNum();
for(int icount=0;icount<rows;icount++){
row = sheet.getRow(icount);
int line=row.getPhysicalNumberOfCells();
for(int j=0;j<line;j++){
cell1= row.getCell(j);
System.out.println(cell1+"--"+icount+"---"+j);
}
}
//列印讀取值
// System.out.println(cell.getStringCellValue());

//新建一輸出流
FileOutputStream fout = new FileOutputStream(filename); //PS:filename 是你另存為的路徑,不處理直接寫入模版文件
//存檔
workbook.write(fout);
fout.flush();
//結束關閉
fout.close();

}

public HSSFCell getCell(HSSFRow row, int index) {

// 取得分發日期單元格
HSSFCell cell = row.getCell(index);

// 如果單元格不存在
if (cell == null) {

// 創建單元格
cell = row.createCell(index);
}

// 返回單元格
return cell;
}

public static void main(String[] args) {
ExcelController ec = new ExcelController();
try {
ec.excel();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

10. excel太大,運行緩慢該怎麼辦

Excel文件太大的話,肯定會導致運行緩慢,但是可以使用以下方法提高和改善:
一、首先要合理設計數據的布局,這是計算效率得到保障的前提
由於Excel引用訪問本工作表、不同工作簿或工作表數據的速度是有區別的,通常計算指向其他工作表的引用比計算工作表內的引用速度要慢。當數據計算量較大時,就必須考慮數據的整體布局:數據是分工作簿保存、分工作表保存,還是保存在同一工作表。
基於整體性原則,如果是清單型數據表格,可能的話,盡量將數據整合同一工作表,至少盡量在同一工作簿。如果不能整合在同一工作簿,寧願使用少量的大型工作簿,也不要使用數量較多的小型工作簿。盡可能地避免工作簿間的鏈接,對外部工作簿進行鏈接,既影響表格的打開速度,並且當工作簿移動或刪除時,還容易出現斷鏈,不易於查找和修復。
二、不可避免引用其他工作簿時的提速技巧
對關閉的工作簿盡量使用簡單的直接單元格引用。這樣做可以避免在重新計算任何工作簿時重新計算所有鏈接的工作簿。
如果不能避免使用鏈接的工作簿,最好將它們全部打開而不是關閉,並且表格打開順序也有講究,要首先打開要鏈接到的工作簿,然後再打開包含鏈接的工作簿。一般來說,從打開的工作簿比從關閉的工作簿中讀取鏈接的速度要快。
進一步提速的「斷舍離」大法:
斷:數據量大的表格,應將已經計算出結果且不會再更新的單元格的公式計算結果採用選擇性粘貼方式轉化為數值,以減少計算量;
舍:盡量不要大范圍使用計算量大的功能或公式。比如:盡管條件格式和數據有效性的功能非常強大,數組公式運算功能也非常強大,但是,大量使用它們會明顯降低計算速度,除非你願意忍受蝸牛般的運算速度,否則,不要大范圍使用數據有效性、條件格式和數組公式;
離:如果某張工作表需要進行大量運算,且其他工作表對它的引用較少,可考慮將其移出本工作簿。以免每次重新計算時,影響工作簿的整體計算速度。
三、原始數據要規范
原始數據一定的規范,否則,還要使用函數公式清洗不規范的數據,徒增中間環節,影響計算速度。比如數據的來源不是手工輸入,而是從其他系統導出,導出的數據可能並不規范,比如數字是文本格式、數字後有空格、不可見字元,這些數據就沒法直接參與運算,如果不手工整理成規范數據,還得用函數公式進行規避,這就大大影響計算速度。
四、要關注公式函數的計算效率,盡量使用效率高的函數,或使用其他功能代替。
1.非必要的情況下,不使用可變函數(易失性函數)。
Excel的可變函數有:RAND、NOW、TODAY、OFFSET、CELL、INDIRECT和INFO。可變函數有個特點,當數值發生變化時,每次都要重新計算,因而會影響表格的計算性能。
比如,我們常用的下面的公式來定義動態區域:
=OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1)
它的好處是:會自動擴展以包含新條目,但表格的計算性能會降低,這是因為OFFSET是可變函數,並且由於OFFSET中的COUNTA函數必須檢查很多行,計算效率較低。
一般情況下,我們可以使用Excel的表格功能來代替動態區域(Excel2003中稱為列表)。
2.使用其他行和列計算並存儲中間結果一次,以便在其他公式中重復使用它們。並且,如前所述,盡可能引用其他單元格已有的計算結果,這樣可提高運算效率。
11.png(13.93KB,下載次數:4)
下載附件保存到相冊
2015-1-2422:57上傳

在C2單元格輸入公式:
=SUM($A$2:$A2)
然後向下填充公式到C2000。如上圖。B列的公式是上一累加結果加上本行數字。B列的公式是引用了上一行單元格的計算結果,B列公式比C列公式單元格引用總數減少了500倍,計算量大大減少。
3.減少每個公式中的引用數,最大程度地減少函數中的引用單元格範圍。
盡管在Excel2007以後的版本中,數組公式可以處理整列引用,但是這會強制計算列中的所有單元格,包括空單元格。這樣會使表格計算起來很緩慢。
4.盡可能使用最有效的函數(一般情況下自定義函數慢於Excel中的內置函數),編制適當的公式,盡可能減少公式的計算次數
=IF(ISERROR(VLOOKUP("龍逸凡",$A$2:$C$1000,3,0)),"查無此人",VLOOKUP("龍逸凡",$A$2:$C$1000,3,0))
如果表格A2:A1000中有「龍逸凡」,使用上面這個公式,則Excel要運算VLOOKUP函數兩次。Excel2007以後的版本中,可以使用IFERROR來減少運算的次數:
=IFERROR(VLOOKUP("龍逸凡",$A$2:$C$1000,3,0),"查無此人")
五、非必要的情況下不使用會觸發重新計算的操作
以下操作會觸發重新計算:
1.在自動模式下單:擊行或列分隔符。
2.在工作表中插入或刪除行、列或單元格。
3.添加、更改或刪除已定義名稱。
4.在自動模式下重命名工作表或更改工作表位置。
5.在表格中使用篩選、隱藏或取消隱藏行。
6.在自動模式下打開工作簿。如果工作簿上次由不同版本的Excel計算,則打開工作簿通常導致完整計算。
7.選中了「保存前自動重算」選項的情況下在手動模式下保存工作簿。
六、可能的情況下先對數據進行排序,再使用查找引用。盡可能避免對未排序數據執行查找,因為速度很慢。
1.如果使用完全匹配選項,則函數的計算時間與找到匹配項之前掃描的單元格數成比例。對於在較大區域內執行的查找,此時間可能非常長。對排序數據使用VLOOKUP、HLOOKUP和MATCH的近似匹配選項的查找時間很短,並且不會根據所查找的區域長度顯著增加。
2.因為完全匹配查找可能很慢,所以應該考慮使用以下可以提高性能的方法:
Ø使用一張工作表。使查找和數據位於同一工作表中運行速度更快。
Ø如果可以,請首先對數據進行排序,並使用近似匹配。
Ø如果必須使用完全匹配查找,請將要掃描的單元格區域限制在最小范圍內。使用動態區域名稱或表格(列表)功能,而不是引用大量行或列。
七、做到了前面四點,表格的運算速度還是很慢時,將Excel的計算模式改為手動計算,在需要時再重新計算。
在手動計算模式下,可以通過按【F9】觸發智能重新計算。使用【Shift+F9】僅重新計算所選工作表,按【Ctrl+Alt+F9】強制對所有公式執行完整計算,也可以通過按【Ctrl+Shift+Alt+F9】強制徹底重新構建依賴項和執行完整計算。
F9計算所有打開的工作簿中的所有工作表。
按Shift+F9可計算活動工作表。
按Ctrl+Alt+F9可計算所有打開的工作簿中的所有工作表,不管它們自上次計算以來是否已更改。
如果按Ctrl+Alt+Shift+F9,則會重新檢查相關公式,然後計算所有打開的工作簿中的所有單元格,其中包括未標記為需要計算的單元格。

閱讀全文

與大數據excel文件讀取相關的資料

熱點內容
數據ltc是什麼意思 瀏覽:568
順序表存儲數據結構有哪些特點 瀏覽:891
蘋果手機在微信怎麼搜索文件 瀏覽:375
資料庫服務怎麼重啟 瀏覽:841
蘋果6s通話聲音太小 瀏覽:517
什麼是數據分析法 瀏覽:659
多頁雙面文件按順序復印如何操作 瀏覽:772
diskgen硬碟工具 瀏覽:642
後端編程哪個好 瀏覽:540
編程哪個軟體最簡單 瀏覽:591
山西運城疫苗用哪個app預約 瀏覽:413
有線網路電視機頂盒如何看直播 瀏覽:909
linux掛載硬碟home 瀏覽:964
word2010全部接受修訂 瀏覽:802
咋找文件管理中找下載路徑 瀏覽:967
冒險小鎮怎麼快速升級 瀏覽:573
如何修改5g手機的5g網路 瀏覽:486
為什麼網站查不到流量 瀏覽:215
微信錄音怎麼錄音文件 瀏覽:450
iphone6顯示無法滿屏 瀏覽:747

友情鏈接