Форум сайта python.su
Всем доброго времени суток. Зашел в тупик в поиске команды для автоматического подбора ширины колонки в excel
Пробовал так, но ругается…
import csv
import openpyxl
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
with open('myfile.txt') as f:
for line in csv.DictReader(f, delimiter=':'):
ws.append([line['fio'],int(line['o']),int(line['ko']),int(line['kr']),int(line['kdb']),round(int(line['ko'])*int(line['o'])/int(line['kr']),1),round(int(line['kdb'])/int(line['kr']),1)])
#ws.columns('A:G').EntireColumn().AutoFit()# Ругается именно на эту строку, которая, собственно и должна отвечать за автоподбор.
wb.save("My-Excel-File-1.xlsx")
Отредактировано Zodt (Март 2, 2016 18:56:44)
Офлайн
ZodtНадо написать как ругается.
Ругается именно на эту строку
ZodtА с чего вы взяли что данная функциональность есть в openpyxl.
как реализуется данная команда на Delphi 7
Zodt?
РГР
ZodtРаз просите, промолчу скрипя зубами. :)
P.S.S. не спрашивайте на кой это надо и какому “умному” человеку такое пришло в голову
Отредактировано doza_and (Март 2, 2016 20:55:50)
Офлайн
doza_andОшибка такая:
“Надо написать как ругается.”
doza_andРешебно-Графическая Работа, короче говоря что-то типа домашки… правда на пол семестра
“А что такое РГР”
doza_andНашел такой вариант, который добавляет(точнее должен добавлять) макрос в сам excel файл на автоподбор ширины колонок.
“Это похоже на функциональность .net интерфейса. Смотрите доки по экселу и win32com”
xl = win32.gencache.EnsureDispatch('Excel.Application') xl.Visible = True ss = xl.Workbooks.Add() sh = ws or ws2 xlmodule = ss.VBProject.VBComponents.Add(1) # vbext_ct_StdModule sCode = '''sub VBAMacro() msgbox "VBA Macro called" end sub''' xlmodule.CodeModule.AddFromString(sCode)
pywintypes.com_error: (-2147352567, 'Ошибка.', (0, 'Microsoft Excel', 'Программный доступ к проекту Visual Basic не является доверенным\n', 'xlmail.chm',0,-2146827284), None)
Отредактировано Zodt (Март 2, 2016 21:45:10)
Офлайн
ZodtКруто. Надо будет попробовать. Неужели такое можно получить?
TypeError: ‘turtle’ object is not callable
Офлайн
doza_andА есть идеи как этого добиться?
Думаю вам будет проще ручками написать выравниватель ширины столбцов.
Офлайн
привет. Вот рабочий пример
#create COM object excel = Dispatch('Excel.Application') #disable alerts wb = excel.Workbooks.Add() sheet = wb.Worksheets.Add() sheet.Range('A' + str(1)).value = 'Some text1' sheet.Range('B' + str(1)).value = 'Some text2' sheet.Columns('A:B').EntireColumn.AutoFit() #save as wb.SaveAs("1.xlsx") #close workbook wb.Close() #close Com object excel.Quit()
Офлайн