- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个程序,使用 python 和 openpyxl 将所有单个引号移动到一个单引号矩阵中,但是当尝试加载模型信息时,它似乎是从第一个引号重复模型。每个报价都是一个单独的 excel 文件,这让我感到困惑,因为我在获取报价信息时没有问题,即名称、日期等,但是每个报价的模型列表都是相同的,而不是从每个报价中提取模型.
数据结构:
class Model:
SKU = None
cost = None
qty = None
qty_remaining = None
class Quote:
name = None
number = None
start_date = None
end_date = None
models = []
从每个报价电子表格中获取数据的函数:
def load_quote(filename):
quote_wb = load_workbook(filename=filename, data_only=True, read_only=True)
quote_sheet = quote_wb.active
quote = Quote()
quote.number = quote_sheet['A2'].value
quote.number = quote.number[9:len(quote.number)]
quote.name = quote_sheet['A3'].value
quote.name = quote.name[14:len(quote.name)]
quote.start_date = quote_sheet['A6'].value
quote.start_date = quote.start_date[14:len(quote.start_date)]
quote.end_date = quote_sheet['A7'].value
quote.end_date = quote.end_date[12:len(quote.end_date)]
for row_vals in quote_sheet.iter_rows(min_row=12, max_row=250, min_col=1, max_col=9, values_only=True):
model = Model()
if row_vals[0] is not None:
model.SKU = row_vals[0]
model.cost = row_vals[4]
model.qty = row_vals[6]
model.qty_remaining = row_vals[8]
quote.models.append(model)
else:
continue
return quote
每个报价的格式相同,报价编号在单元格 A2 中,名称在单元格 A3 中,开始日期在单元格 A4 中,结束日期在单元格 5 中。
quotes = []
for file in os.listdir(os.chdir(directory)):
if file.endswith(".xlsx"):
quote = load_quote(file)
quotes.append(quote)
最佳答案
Quote
的所有属性和 Model
在类级别上定义 - 它们是 类属性 .类属性在类的所有实例之间共享。
对于像 int
这样的不可变数据,这不是问题。或 str
,因为通过编写:
q1 = Quote()
q1.name = 'quote_name'
您实际上创建了一个新的
实例属性
name
绑定(bind)到实例
q1
在运行时,这允许实例避免查找
Quote.name
当您询问其名称时的类属性。
Quote.models
是
可变数据 (列表),它在
Quote
的所有实例之间共享.如果您附加到该列表,则此就地操作将反射(reflect)在该类的任何实例中。
class Quote:
name = None
number = None
start_date = None
end_date = None
models = []
q1 = Quote()
q2 = Quote()
q1.models.append('x')
print(q2.models) # output: ['x']
解决此问题的最简单方法是转
Quote.models
通过在
__init__
中定义它,将其转化为适当的实例属性。方法。这样,每个
Quote
实例是使用附加到其
models
的唯一、独立列表创建的。属性:
class Quote:
name = None
number = None
start_date = None
end_date = None
def __init__(self):
self.models = []
这应该足以解决您的问题,尽管我真的建议将所有类属性从
Quote
和
Model
进入适当的实例属性 - 为了清楚起见。
关于Python/Openpyxl 重复数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68837735/
有没有办法使用 openpyxl 折叠多行?似乎没有与 openpyxl simple usage page 上的示例等效的行。 import openpyxl wb = openpyxl.Workb
我有一个应用程序,如果已经有数据,我将工作表写入最后一列 + 2,如果工作表为空,则写入最后一列 + 1。我得到了我认为是空的工作表,如下所示: from openpyxl.workbook.work
我有一个应用程序,如果已经有数据,我将工作表写入最后一列 + 2,如果工作表为空,则写入最后一列 + 1。我得到了我认为是空的工作表,如下所示: from openpyxl.workbook.work
当我从 openpyxl-2.5.12 升级到 openpyxl-3.0.3 时,我开始收到以下错误: C:\workspace\venv_py37_64\lib\site-packages\open
我可以使用以下代码创建垂直条形图: from openpyxl import Workbook wb = Workbook() ws = wb.active for i in range(10):
我对 openpyxl 库有疑问。 问题: 当我使用 xlwt,打开一个 .xls 文件,并在其中写入一些单元格时,我没有触及的单元格的样式保持不变。但现在我必须处理 xlsx 文档,所以我选择了 o
我想将Excel中的数据添加到词典中。但是,当我使用.append(TOTAL_SALES)时出现错误,当然,如果我使用+=TOTAL_SALES,则没有问题,只是我获得的是总和,而不是3个单独月份的
我想将Excel中的数据添加到词典中。但是,当我使用.append(TOTAL_SALES)时出现错误,当然,如果我使用+=TOTAL_SALES,则没有问题,只是我获得的是总和,而不是3个单独月份的
如何更改excel单元格数字格式General至Text不考虑单元格中的数据? 我正在使用 openpyxl 1.8.6。 最佳答案 我知道这个问题真的很老了,但它仍然可能是相关的,因为我在谷歌搜索同
我正在其中一个 Excel 工作表中打印一些公式: wsOld.cell(row = 1, column = 1).value = "=B3=B4" 但我不能使用它的结果来实现其他一些逻辑,如: if
如何使用openpyxl将数据表添加到图例区域如下图所示: openpyxl 中有一个 openpyxl.chart.chartspace.DataTable 类,但我找不到任何示例来使用它。 最佳答
如何使用openpyxl从Excel中的命名范围读取值? 我在http://openpyxl.readthedocs.org/en/latest/_modules/openpyxl/workbook/
请有人给我一个例子,如何复制 带有样式的整个工作表(来自行和列) 到同一工作簿中的第二个工作表? (也可以在新工作簿中) 谢谢。 P.S .:我尝试进行深度复制,但是在保存更改的数据单元时失败了。 目
我有以下函数,可以使用 openpyxl 库从 excel 工作簿中读取数据: import openpyxl def read_excel(path): excel_workbook = o
我有大量 Excel 文件,我只想处理未隐藏的工作表,我想忽略所有隐藏的工作表。 目前我的 python 脚本循环遍历每张纸,无论它是否被隐藏。有没有一种简单的方法来检查工作表是否被隐藏? 我在网上看
我需要做什么: 在 Python/Pandas 中打开 Excel 电子表格 使用 [name, balance] 创建 df 例子: 姓名 平衡 琼斯事工 45,408.83 史密斯事工 38,59
我正在创建一个程序,使用 python 和 openpyxl 将所有单个引号移动到一个单引号矩阵中,但是当尝试加载模型信息时,它似乎是从第一个引号重复模型。每个报价都是一个单独的 excel 文件,这
我有一个在 openpyxl 中打开并清理它并关闭工作簿的 excel 文件,示例代码如下: #filename is the name of the excel file used wb = loa
我正在使用 openpyxl库在电子表格上执行一些 excel 剪切/粘贴操作。 假设我的操作产生了以下数据(请将其用于重现性目的): col1;col2 1;0,17153686 2;0,61532
我想写一个新的工作簿,一张纸,然后在这张纸上添加一个表格。 AFAIK 应该是可能的,这个提交应该做到 https://bitbucket.org/openpyxl/openpyxl/commits/
我是一名优秀的程序员,十分优秀!