2011-08-22 130 views
0

我想從Excel文件中的文本框中讀取文本並將該值保存到變量中。我遇到的問題是閱讀TextBox。我已經嘗試了幾種方法,這個方法顯示了最大的承諾,因爲它不會產生錯誤,但它也不會引出所需的結果。任何建議表示讚賞。見下面的代碼。Python win32com - 將文本框中的文本讀入單元格?

import win32com.client as win32 
excel = win32.gencache.EnsureDispatch('Excel.Application') 
wb = excel.Workbooks.Open("C:\\users\\khillstr\\Testing\\Scripts\\Book1.xlsx") 
excel.Visible = False 

ws = wb.Worksheets 

canvas = excel.ActiveSheet.Shapes 

for shp in canvas.CanvasItems: 
    if shp.TextFrame.Characters: 
     print shp.TextFrame.Characters 
    else: 
     print "no" 

回答

0

要獲得在文本框對象中的文本上,你需要使用shp.TextFrame.Characters.Caption作爲Characters方法片返回Characters對象,而不是一個字符串。

+0

從邏輯上講,這是有道理的,但當我嘗試時會出錯。 運行時錯誤:'function'對象沒有屬性'Caption' – KarlJr

+0

在黑暗中拍攝,但嘗試'shp.TextFrame2.TextRange' – Banjoe

+0

工作!我發誓我曾嘗試過,但在此期間我必須調整其他東西。謝謝你的幫助!! – KarlJr

1

畫布與excel文件中的圖形有關。我想你想要訪問單元格。以下是將每行打印爲元組的代碼。

import win32com.client as win32 
excel = win32.gencache.EnsureDispatch('Excel.Application') 
wb = excel.Workbooks.Open("C:\\users\\khillstr\\Testing\\Scripts\\Book1.xlsx") 
excel.Visible = False 

sheet = wb.Worksheets(1) 

for row in sheet.UsedRange.Value: 
    print row 
+0

奇怪的是,Excel中組形狀下其工作表文本框對象。 – Banjoe

0
import win32com.client as win32 

file_name = 'path_to_excel' 

excel = win32.gencache.EnsureDispatch('Excel.Application') 
wb = excel.Workbooks.Open(self.file_name) 
excel.Visible = False 

sheet = wb.Worksheets(1) 
deep = lambda r,c: sheet.Cells(r,c) 
print(deep(row_num,col_num)) 

excel.Application.Quit() 

該代碼將打開位於 'path_to_excel' 的Excel和讀取位於(ROW_NUMBER = ROW_NUM,COLUMN_NUMBER欄=爲col_num)細胞

+0

嗨,添加一些解釋與代碼,因爲它有助於理解你的代碼。只有代碼答案是不被接受的。 –

相關問題