[英]Is it possible to copy the Excel formula of a cell instead of the value using python?
现在,我正在使用正在运行的熊猫将Excel工作表合并为1个新工作表。 唯一的问题是,新Excel工作表中的值是纯数字而不是公式,我希望使用公式。
正在载入档案
directory = os.path.dirname(__file__)
fname = os.path.join(directory, "Reisanalyze.xlsm")
print("Loading %s..." % fname)
sheet1 = pd.read_excel(fname, sheetname="Input")
sheet2 = pd.read_excel(fname, sheetname="Alternatieven")
写到新表
writer = pd.ExcelWriter('first_sheet.xlsx', engine='xlsxwriter')`**
sheet1.to_excel(writer, sheet_name='Input', merge_cells=False, startrow=0, startcol=0)
sheet2.to_excel(writer, sheet_name='Input', merge_cells=False, startrow=0, startcol=21)
我最初尝试使用pycel项目,该项目一直有效,直到需要加载多张工作表为止。 这就是为什么我使用熊猫将多张纸写成一张纸的原因。
您可以使用OpenPyXL。 在这里阅读
以下是测试excel文件testexl.xlsx
A | B
---------- | ------
=SUM(B1:B2)| 1
| 2
以下是测试代码
from openpyxl import load_workbook
import pandas as pd
wb = load_workbook(filename = 'testexl.xlsx')
sheet_names = wb.get_sheet_names()
name = sheet_names[0]
sheet_ranges = wb[name]
df = pd.DataFrame(sheet_ranges.values)
print df
产量
0 1
0 =SUM(B1:B2) 1
1 None 2
如果要保留excel公式,则需要停止将其用作公式,然后再将其转换回去。 为此,在转换之前,请先在键盘上执行control / command + F,然后屏幕中间会出现一个菜单,然后单击“替换”选项卡。
在“查找内容:”框中,键入“ =”,然后在“替换为:”框中,键入“。=“。 然后做所有替换。 这会将公式转换为文本供您复制。
将其另存为csv文件
注意:我知道这也将替换公式中的=符号。 没关系,它将继续。
合并它们后,将其打开并在excel中备份,然后重复上述步骤,但反过来将其转换回公式。
这可能比导入额外的模块容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.