Я хочу создавать автоматизированные протоколы в Excel. В VBA это работает очень хорошо: вы можете нажать кнопку, ввести значения в некоторые поля ввода, и макрос сгенерирует протоколы.
Теперь я хотел бы сделать все это с помощью Python. С Xlswriter это, безусловно, возможно, но я хотел бы решить эту проблему с помощью Xlwings, но я не знаю, возможно ли это с этим?
Пока мне удалось скопировать все содержимое Excel лист.
import xlwings as xw
path_read = 'C:/Users/Public/test.xlsx'
path_write = 'C:/Users/Public/test_copy.xlsx'
wb = xw.Book(path_read)
sht = wb.sheets[0]
new_wb = xw.Book(path_write)
new_wb.sheets.add("Temp", after=1)
print(new_wb.sheets)
sht.api.Copy(Before=new_wb.sheets['Temp'].api)
new_wb.sheets['Temp'].delete()
new_wb.save(path_write)
Однако у меня на одном листе рядом лежат несколько журналов. Например, я хотел бы скопировать первые 10 столбцов, включая формат листа Excel, а затем снова вставить их на 2 столбца правее с форматом (шрифт, связанные ячейки и т. Д. c.) Так часто, как это было указано .
На данный момент я планирую записать такие значения, как имя файла, количество копий, серийный номер и т. Д. c. в качестве переменных в коде, но было бы неплохо, если бы вы могли использовать для этого поля ввода VBA.
Кто-нибудь знает, возможно ли это с xlwings? Или для этого лучше подойдет модуль xlswriter?