Spreadsheet::ParseExcel可以正常工作,但是我需要一種方法來讀取沒有它的文件,可以說「隨帶Perl」,因爲我無法安裝任何PM或CPAN模塊。有沒有人有建議讓我開始?如何用Perl讀取excel文件?
回答
什麼是使用CPAN模塊相對輕鬆的工作實際上是沒有他們非常困難。
對於打開Excel二進制數據(BIFF)存儲在另一個二進制文件格式稱爲OLE複合文件,這就像一個文件內的文件系統,BIFF數據可能不會被順序存儲,所以開始時你必須編寫一個解析器來獲取數據。
一旦提取了原始BIFF數據,您必須解析它才能找到單元數據。這樣稍微簡單一點,但仍然存在諸如將字符串存儲在離開單元數據的散列表中的困難。和日期無法區分純數字。和合並單元格中的數據。而且一切仍然是二進制的,位掩碼控制着數據結構的含義。
幸運的是,所有這些令人頭疼的事情已經被其他人所困擾,並且被包裹在module之中,所以沒有其他人必須忍受它們。
因此,即使您的管理員不會爲您安裝模塊,也有很多方法可以在本地使用install modules或甚至install perl,這樣您就不必打擾他們。最後,這可能會是一個更簡單的解決方案。
*我部分地。
麥克納馬拉先生,我是你的工作的粉絲,我會聽取你的意見和追求模塊的安裝。 – isJustMe 2012-03-15 18:36:12
OpenDocument is an ISO standard所以你可能閱讀規範並編寫你自己的解析器。
CPAN模塊的存在是因爲有很多事情(一些簡單的,一些複雜的),人們想做的事情不適合成爲核心語言的一部分。解析Excel電子表格就是其中之一(更復雜的一個)。
您應該修復阻礙您安裝模塊的障礙。它可能是管理性的(在這種情況下,您需要遊說以更改策略),它可能是技術性的(在這種情況下,您可能需要了解local::lib
。
感謝您的建議,而不是我正在尋找的答案。 – isJustMe 2012-03-15 18:25:38
對不起,我以爲我看到在之前的評論中導出爲CSV是一個選項。我現在看到我錯了。 – 2012-03-19 05:46:37
我將基於@mob關於Text :: CSV的上述回答。前一段時間,我在CPAN上發現Text:CSV::Slurp,並且是即時轉換。它採用帶有標題行的CSV文件並返回hashref的arrayref,其中的鍵是標題行中的名稱。很明顯,這在所有情況下都不起作用,但如果它確實代碼很簡單:
my $slurp = Text::CSV::Slurp->new;
my $data = $slurp->load(file => $filename);
for my $record (@$data) {
...
}
謝謝,問題是我必須解析一個XLS文件而不是CSV – isJustMe 2012-03-17 19:39:34
- 1. 如何在Perl中讀取Excel文件?
- 2. 如何修改Perl腳本讀取Excel而不是HTML文件
- 3. 如何使用AJAX讀取excel文件?
- 4. Perl - 讀取文件
- 5. Perl文件讀取
- 6. 如何從Perl文件讀取數字?
- 7. 如何在perl中讀取grep文件
- 8. 如何在Perl中讀取.conf文件
- 9. 用read_excel讀取excel文件
- 10. 用xlrd讀取excel文件
- 11. 讀取Excel文件
- 12. 讀取Excel文件
- 13. 讀取excel文件
- 14. 如何從Excel文件讀取?
- 15. 如何從Excel文件讀取數據?
- 16. 如何從動態excel文件讀取?
- 17. 如何從excel文件中讀取
- 18. 如何用perl創建excel文件?
- 19. Perl讀取文件錯誤
- 20. 讀取JPEG文件perl
- 21. Perl - 讀取文件行
- 22. perl遞歸文件讀取
- 23. Perl讀取perl代碼表示文件
- 24. 使用Spreadsheet遍歷Perl文件中的Excel文件::閱讀
- 25. 用Perl讀取zip文件內容
- 26. 使用Perl讀取XML文件
- 27. c#讀取excel文件
- 28. 的Java讀取Excel文件
- 29. 遠程讀取Excel文件
- 30. JAVA讀取excel文件
[Are](http://shadow.cat/blog/matt-s-trout/but-i-cant -use-cpan /)[you](http://www.perlmonks.org/?node=693828)[sure](http://twiki.org/cgi-bin/view/TWiki/HowToInstallCpanModules#Setting_a_private_CPAN_librar)[你](http://twiki.org/cgi-bin/view/TWiki/HowToInstallCpanModules#Installing_CPAN_modules_manually)[can not](http://linuxgazette.net/139/okopnik.html)[use](http:/ /www.thegeekstuff.com/2008/09/how-to-install-perl-modules-manually-and-using-cpan-command/)[CPAN](http://www.activestate.com/blog/2010/ 10 /如何安裝,CPAN模塊-的activeperl)? – mob 2012-03-15 17:16:12
完全確定...不是超級用戶,請求被拒絕 – isJustMe 2012-03-15 17:17:44
您可以使用模塊而不需要以根用戶身份進行安裝。 – 2012-03-15 17:22:16