我想从Excel文件的文本框中读取文本并将该值保存到变量中。我遇到的问题是阅读TextBox。我已经尝试了几种方法,这个方法显示了最大的承诺,因为它不会产生错误,但它也不会产生预期的结果。任何建议表示赞赏。请参阅下面的代码。
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 :(得分:1)
Canvas与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
答案 1 :(得分:0)
要在工作表上的文本框对象中获取文本,您需要使用shp.TextFrame.Characters.Caption
,因为Characters
方法返回Characters
对象而不是字符串。
答案 2 :(得分: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'并读取位于(Row_Number = row_num,Column_Number = col_num)
的单元格