如何在python中使用excel公式(宏)处理excel文件(xlsx,xls)

时间:2018-08-10 14:40:35

标签: python excel python-module

我需要在迭代中将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]

哪个模块可以使用python中的excel功能(宏)来帮助打开/读取/写入工作簿。

1 个答案:

答案 0 :(得分:0)

幸运的是,我发现下面的代码可以提取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 - read only one column from excel file in python?以其他方式使用了信息