0

我想从 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

ws = wb.Worksheets

canvas = excel.ActiveSheet.Shapes

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

3 回答 3

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
于 2011-08-22T17:21:59.440 回答
0

要获取工作表上文本框对象中的文本,您需要使用shp.TextFrame.Characters.CaptionCharacters方法返回Characters对象而不是字符串。

于 2011-08-22T17:24:30.200 回答
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) 的单元格

于 2016-09-10T18:22:31.280 回答