2011-08-04 122 views
0

使用下面的代碼,我可以獲取要打印的數據。 如何將代碼切換到xlrd?將Excel連接到Python

會如何修改此代碼以使用xls文件已經打開並可見。 因此,文件首先手動打開,然後腳本運行。

而且,得到更新。

,然後將被推到MySQL

import os 
from win32com.client import constants, Dispatch 
import numpy as np 

#---------------------------------------- 
# get data from excel file 
#---------------------------------------- 
XLS_FILE = "C:\\xtest\\example.xls" 
ROW_SPAN = (1, 16) 
COL_SPAN = (1, 6) 
app = Dispatch("Excel.Application") 
app.Visible = True 
ws = app.Workbooks.Open(XLS_FILE).Sheets(1) 
xldata = [[ws.Cells(row, col).Value 
       for col in xrange(COL_SPAN[0], COL_SPAN[1])] 
      for row in xrange(ROW_SPAN[0], ROW_SPAN[1])] 
#print xldata 
a = np.asarray(list(xldata), dtype='object') 
print a 
+0

因爲它的真棒:[pyspread(http://pyspread.sourceforge.net/) – nmichaels

回答

1

如果你的意思是你要修改當前的文件,我99%肯定是不可能的,100%肯定,這是一個壞主意。爲了改變一個文件,你需要有寫權限。 Excel創建一個文件鎖定以防止異步和同時編輯。如果文件在Excel中打開,那麼應該修改該文件的唯一內容是... Excel。

如果你的意思是你想在當前編輯器讀取文件,那麼這是可能的 - 你經常可以得到讀取訪問中使用的文件,但它同樣是不明智的 - 如果用戶不保存,那麼用戶將看到一組數據,並且您將在磁盤上擁有另一組數據。

雖然我不是VB的粉絲,就是這個應用程序更好的選擇 - 使用宏來將數據直接從Excel中插入到MySQL。就個人而言,我只會創建一個插入權限的用戶,然後我會嘗試this tutorial

+0

我在VBA做到了這一點,尋找蟒蛇的解決方案。我想excel改變excel。而且,python做numpy數學和移動到mysql。但是,上面的代碼每次都是「新」Workopens。 – Merlin

+0

你有沒有考慮過使用OpenOffice?這有Python綁定。 – cwallenpoole

+0

是的。我對面向對象不感興趣。 – Merlin