Как обрабатывать файл excel (xlsx, xls) с формулами (макросами) excel в python

Мне нужно передать входные данные из Input_data.xls в итерации в существующий файл xls, который имеет специальную функцию в различных ячейках с использованием python3.6. Эти функции изменяют первичные данные в существующих XLS согласно входам. Но когда xlrd открывает файл, он не импортирует функцию ячейки xls и не сохраняет файл с модификацией. И напишите имя объекта вместо его значения

Код Python:

import xlrd
import xlwt
import xlutils 
from xlrd import open_workbook
from xlutils.copy import copy 
import os.path

book = xlrd.open_workbook('input_data.xlsx')
sheet0 = book.sheet_by_index(0)
for i in range (sheet0.nrows):
    st1=sheet0.row_values(i+1)
    TIP=[st1[0]]
    OOIPAN_IP=[st1[1]]
    NM=[st1[2]]
    book1 = xlrd.open_workbook('primary_data.xls')
    wb=copy(book1)
    w_sheet=wb.get_sheet(0)
    w_sheet.write(1,0,'TIP')
    w_sheet.write(1,1,'OIP')
    w_sheet.write(1,2,'NM')
    wb.save('ipsectemp.xls')

писать имя объекта в ячейках вместо vlaue объекта

input 1 input 2 input 3

st1[0]  st1[1]  st1[2]

какой модуль может помочь открыть / прочитать / записать книгу с ее функциями Excel (макросами) в python.

1
0
176
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

К счастью, я нашел ниже код, который может извлекать макросы Excel, модуль openpyxl хорошо работает, используя значения ячеек.

    book = load_workbook('primary_data.xlsx') #open ipsec file with desired inputs
    sheet0 = book.get_sheet_by_name('Sheet1')
    for row in range(2,sheet0.max_row+1):  
        for column in "A":  #Here add or reduce the columns
            cell_name = "{}{}".format(column, row)
            textlt=sheet0[cell_name].value
            print(textlt)

информация, извлеченная из этого ответа openpyxl - читать только один столбец из файла Excel в Python? использовал информацию иначе

Другие вопросы по теме