2009-11-02 74 views
0

我有12個由另一個程序生成的.csv文件。 .csv文件包含數字數據,用逗號分隔。使用Excel在.csv文件中總計數字

我需要一個簡單的方法來累計每個文件中某些列的值,並比較各個文件的總數,例如將文件1中的總數與文件5中的總數相比較。

每個文件的格式相同,即每個記錄中的5個值,用逗號分隔。 12個.csv文件中的每個文件都大小約爲50 Mb。每個文件都有不同數量的記錄。

我工作的環境是「安全」的,我不能跑的比我已經安裝了PC我用其他任何程序。我安裝了Excel,並假設我可以編寫VBA代碼/宏,並且可以訪問命令行。我不能(例如)從USB密鑰加載任何東西,並且不能安裝任何腳本語言,例如蟒蛇。

我也想過這樣做手工的如在Excel中打開每個.csv文件並使用Excel函數總計列(即SUM()

我的挑戰我需要在接下來的幾周內多次執行此操作,因爲生成了新版本的.csv文件,第一個版本,當我在另一個系統上進行測試時,將會有很多版本的12個文件。對於每個新版本,我需要彙總數據並跨文件進行比較。

最後要說的是,我不能改變這種狀況如產生.csv文件導入系統創建一組總計

我在尋找,我可以用編程解決方案,給我的資源有限

+0

我打算建議簡單地記錄一個宏(打開的文件,移動到最後與CTRL +結束,一個下來,寫總和代碼,複製到其他列等),但似乎有一個Excel中的錯誤 - csv在宏裏面打開似乎被錯誤地打開。如果你能找出解決辦法,這將是最簡單的解決方案。 – Makis 2009-11-02 09:25:40

回答

0

您應該可以使用excel VBA宏輕鬆完成此操作,但如果需要加載並轉換50MB csv文件,可能需要一段時間。

的JScript(JavaScript的一個微軟形式)一般適用於所有的機器和Windows腳本宿主下運行。只需創建一個擴展名爲.js的文件,並嘗試通過雙擊運行。或者你可以使用帶有.vbs擴展名的vbscript。

我認爲你最簡單的解決方案是編寫一個excel宏(因爲你將有用於excel vba的IDE,因爲它是有限的)。

0

PowerShell的或批處理(使用比什麼已經是在PC上其他任何工具的能力)腳本? CSV只不過是以逗號分隔的文本文件。應該很容易把東西搞砸了。

0

ADO可以處理CSV文件,然後您可以使用SQL語句將相應的值相加 - 有關完整詳細信息,請參閱this MSDN article

如果你去到Visual Basic編輯器在Excel中,然後嘗試通過Tools菜單中添加一個參考,你應該有一些對Microsoft ActiveX數據對象(2.8是最新的一個。)並稱參考,您可以使用ADO。

相關問題