2010-07-26 81 views
1

我有一個包含約300萬個單元格的excel電子表格。我提出以下問題,我喜歡關於保存的電子表格爲CSV,然後用python的處理做出了回答:開始使用python處理數據

solution to perform lots of calculations on 3 million data points and make charts

  1. 是有,我可以使用,將讀取CSV到矩陣庫或者我應該自己寫一個嗎?
  2. python會不會用VBA說話?
  3. 在我完成數據處理後,是否可以簡單地將它放回CSV格式,以便我可以在Excel中打開它進行查看?
+0

[解決方案在300萬個數據點上執行大量計算並製作圖表]的可能副本(http://support.microsoft.com/kb/3322939/solution-to-perform-lots-of-calculations-on- 3百萬個數據點和製作圖表) – 2010-07-26 20:58:53

回答

3

是否有一個庫,我可以使用它將讀取csv到矩陣或應該我自己寫一個?

csv模塊可以處理您想要的任何事情。

確實python會說VBA嗎?

鐵蟒可能。

當我完成數據處理後,是否可以簡單地將它放回CSV格式,以便我可以在Excel中打開它進行查看?

csv模塊可以處理您想要的任何事情。

建議:閱讀:http://docs.python.org/library/csv.html

3

我喜歡NumPy的loadtxt這種事情。非常易於配置讀取CSV。並且在操作後放回去。或者如果您不想安裝任何新的東西,您可以查看csv模塊中的內置模塊。

1

如果我們說話pythonish,爲什麼不使用http://www.python-excel.org/?讀取文件的

例子:

import xlrd 
rb = xlrd.open_workbook('file.xls',formatting_info=True) 
sheet = rb.sheet_by_index(0) 
for rownum in range(sheet.nrows): 
    row = sheet.row_values(rownum) 
    for c_el in row: 
    print c_el 

寫入新文件:

import xlwt 
from datetime import datetime 

font0 = xlwt.Font() 
font0.name = 'Times New Roman' 
font0.colour_index = 2 
font0.bold = True 

style0 = xlwt.XFStyle() 
style0.font = font0 

style1 = xlwt.XFStyle() 
style1.num_format_str = 'D-MMM-YY' 

wb = xlwt.Workbook() 
ws = wb.add_sheet('A Test Sheet') 

ws.write(0, 0, 'Test', style0) 
ws.write(1, 0, datetime.now(), style1) 
ws.write(2, 0, 1) 
ws.write(2, 1, 1) 
ws.write(2, 2, xlwt.Formula("A3+B3")) 

wb.save('example.xls') 

有頁面上的其他例子。

+0

使用'easyxf'可以讓你更容易。例如。 'style0 = xlwt.easyxf(「font:name Times New Roman,color red,bold true」); style1 = xlwt.easyxf(num_format_str =「d-mmm-yyyy」)' – 2010-07-26 23:31:41