Python win32com - читать текст в текстовом поле в ячейку? - PullRequest
0 голосов
/ 22 августа 2011

Я хотел бы прочитать текст из текстового поля в файле 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"

Ответы [ 3 ]

1 голос
/ 22 августа 2011

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
0 голосов
/ 10 сентября 2016
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()

Этот код откроет Excel, расположенный в path_to_excel, и прочитает ячейку, расположенную в (Row_Number = row_num, Column_Number = col_num)

0 голосов
/ 22 августа 2011

Чтобы получить текст в объекте текстового поля на листе, вам нужно использовать shp.TextFrame.Characters.Caption, так как метод Characters возвращает объект Characters, а не строку.

...