【问题标题】:use data from excel file in another python script在另一个 python 脚本中使用来自 excel 文件的数据
【发布时间】:2018-08-19 19:10:34
【问题描述】:

我想编写一个 python 脚本,它从一个 excel 文件中获取数据并使用这些数据并将其输入到另一个 excel 文件中以获取输出。例如,如果我有 input.csv,它会从那里获取数据,并替换 output.csv 的某些单元格并根据计算获取值

import pandas as pd
import numpy as np

data=pd.read_excel("Data.xlsx")
Depth=data["Depth (D):"];
ID=data["Tubing inner diameter (dti):"];
API=data["Oil gravity (API):"];
oilvisc=data["Oil viscosity (cp):"];

这是我目前拥有的脚本,这些是输入。

import xlwt
import xlrd
from xlutils.copy import copy

rb=xlrd.open_workbook("hagedornbrowncorrelation.xls")
wb=copy(rb)
w_sheet=wb.get_sheet(0)
w_sheet.write(4,2,700)
wb.save("hagedornbrowncorrelation.xls")

工作簿“hagedornbrowncorrelation.xls”是我的计算器,我将 C5 替换为 700,但是当我保存它时,工作簿中的所有宏和公式都消失了,它变成了一个无用的带有数字的工作簿

【问题讨论】:

  • 我有一个从 csv 获取数据的脚本,我不知道如何继续
  • pandas,在我看来,对于非大量数据用户来说并不是最好的用法。我建议你改用 openpyxl。
  • @Longroadahead 我不明白你在下面发布的内容,我是 python 的新学习者,让我再次总结一下,我正在取一些数字并将它们添加到 hagedorn.xlsx 文件中进行计算,但是一旦我保存它,它甚至不起作用
  • 那么您是在问如何使用 Marcos 和公式保存文件?我已经编辑了我的答案以考虑宏观。

标签: python excel pandas numpy vba


【解决方案1】:

我用openpyxl模块做了一个类似的项目,可以在这里找到

https://openpyxl.readthedocs.io/en/stable/

因为我用 Tkinter 构建了一个 UI,我确实打开了一个文件,你可能不想像我一样使用全局变量,这是一个快速的 hack。

def getFilecurrent():
    global path
    # open dialog box to select file
    path = filedialog.askopenfilename(initialdir="/", title="Select file")

然后你可以使用存储它

ref_workbook = openpyxl.load_workbook("filevariable")

然后通过选择正确的单元格来操作数据,还记得选择正确的工作表。

 weeklyengagement = ws['B18'].value

然后,为粘贴到 like 中的文件创建一个新模板

template = openpyxl.load_workbook("Section12Grades.xlsx") #Add file name
temp_sheet = template.get_sheet_by_name("Sheet1") #Add Sheet name

最后,您复制范围并使用循环粘贴范围。那里有很多资源,我不会粘贴我的代码,因为它有一些自定义设置,只会让你感到困惑。

编辑:如果你想用宏保存,你可以这样做:

wb = load_workbook(filename='filename.xlsm', read_only=False, keep_vba=True)

公式是字符串,如果您想保存公式,您必须将其保存为字符串格式并保存。

【讨论】:

    猜你喜欢
    • 2012-04-22
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    相关资源
    最近更新 更多