我正在使用POI 3.9從xlsx讀取數據。但是現在我面臨一個問題,POI不支持xlsb文件,我需要從xlsb中編程讀取數據。有人知道如何從程序中讀取xlsb的數據嗎?讚賞。如何從Excel(.xlsb)二進制文件格式讀取數據?
4
A
回答
-3
這只是一種變通方法..
您可以轉換XLSB文件,XLSX文件,並使用POI從中提取數據。
你試過了嗎?我知道它不是正確的答案,但希望它有幫助。 :)
0
在Perl中,Win32 :: OLE模塊可以將XLSB轉換爲XLSX。缺點是:你必須安裝MS Excel。下面是基於我用什麼一些示例代碼...
use File::Spec::Functions qw/rel2abs/;
use Win32::OLE;
use Win32::OLE::Const 'Microsoft Excel';
use Win32::OLE::Variant;
Win32::OLE->Option(Warn => 3);
my $xlsb = 'C:\Users\wohlfarj\Documents\File.xlsb';
# This block uses an already open instance of Excel, or starts a new one if it isn't already open.
my $excel;
eval { $excel = Win32::OLE->GetActiveObject('Excel.Application') };
die 'MS Excel not installed' if [email protected];
unless (defined $excel) {
$excel = Win32::OLE->new('Excel.Application', 'Quit')
or die 'Cannot start MS Excel';
}
# After all of the setup, converting the file is painless.
my $xlsx = rel2abs($xlsb);
$xlsx =~ s/\.xlsb$/\.xlsx/i;
my $workbook = $excel->Workbooks->Open({FileName => rel2abs($xlsb)});
$workbook->SaveAs({FileFormat => xlOpenXMLWorkbook, Filename => $xlsx});
$workbook->Close({SaveChanges => xlDoNotSaveChanges});
從這裏,電子表格:: XLSX模塊讀取XLSX複製就好了。
0
POI開發者顯然沒有對支持XLSB計劃:http://mail-archives.apache.org/mod_mbox/poi-dev/201401.mbox/%3Calpine.DEB.2.02.1401250721280.31868%40urchin.earth.li%3E
這將是相當大量的工作,因爲你既需要更新記錄 應對較長/不同的格式,然後重新執行所有的操作步驟 以處理它的不同方式。迄今爲止,沒有人一直想 擺在所有工作非常邊際效益
有似乎是一個javascript library for reading xlsb,你可以用它來將數據導出爲JSON和從Java讀取。
+0
在POI上,我們只爲xlsb文件添加了只讀流分析器。它將與3.16-beta3一起提供。 –
0
Apache POI在3.16中添加了對流式讀取XLSB(無寫入支持)的支持。 Apache Tika 1.15現在支持從XLSB提取。
相關問題
- 1. 用C#讀取Excel xlsb文件
- 2. 如何從二進制文件中讀取數據?
- 3. 如何在Python中以二進制格式讀取二進制文件?
- 4. 從文件中讀取二進制數
- 5. 如何從二進制數據中找到文件格式
- 6. 如何讀取C++中的.proto格式的二進制文件?
- 7. 如何從Excel文件讀取數據?
- 8. 如何讀取二進制文件
- 9. 如何讀取二進制文件?
- 10. 讀取二進制數據
- 11. 如何從二進制文件讀取C文本文件?
- 12. 使用python從二進制文件中讀取數字數據
- 13. C#從讀取文本文件中讀取二進制文件
- 14. 從串口讀取二進制數據
- 15. 如何讀取/寫入/修改大型Excel XLSB/XLSM文件? (C#)
- 16. 從Clojure的.xlsb讀取數據
- 17. 從二進制文件讀取Scala
- 18. 從URLConnection讀取二進制文件
- 19. 從二進制文件讀取錯誤
- 20. 從二進制文件讀取
- 21. 從GUI讀取二進制文件
- 22. 如何從文件中讀取二進制格式的字符串?
- 23. 如何使用dlang讀取二進制文件數據
- 24. 我如何讀取java中的二進制數據文件
- 25. 如何使用Tcl_ReadChars從二進制文件讀取浮點數?
- 26. 如何從二進制WebM文件讀取浮點數?
- 27. 如何從二進制文件讀取整數與C + +和C
- 28. 如何使用fread從二進制文件中讀取整數?
- 29. 從二進制格式文件讀取32位整數的數組?
- 30. 如何從hdfs將二進制文件讀入Spark數據框?
是的,但問題是如何將xlsb編程轉換爲xlsx? – Martin
Apache POI不支持.xlsb文件格式,所以將xlsx語法轉換爲xlsb是不可能的。我估計需要更多時間進行研究。 –
是的,謝謝你的評論。 – Martin