我需要比较两个excel文件和一个csv文件,然后将一些excel文件中的一些数据写入另一个。
看起来像这样:
包含我将要比较的名称的CSV文件。例如(垃圾邮件,鸡蛋)
第一个带有名称和值的Excel文件。例如(垃圾邮件,100)
带有名称的第二个Excel文件。例如(鸡蛋)
现在,当我将文件(第二个)输入程序时,我需要确保鸡蛋==垃圾邮件与csv文件,然后将值100保存到鸡蛋。
对于我正在使用csv
的excel文件进行操作而对于csv我正在使用deploy:deploy-file
。
我可以指望你的帮助吗?也许有更好的图书馆可以做到这一点,因为我的试验证明是完全失败的。
答案 0 :(得分:0)
自己搞定。一些复杂的方式,但它的工作方式与我想的一样。会很高兴得到一些提示。
import openpyxl
import numpy as np
lines = np.genfromtxt("csvtest.csv", delimiter=";", dtype=None)
compdict = dict()
for i in range(len(lines)):
compdict[lines[i][0]] = lines[i][1]
wb1 = openpyxl.load_workbook('inputtest.xlsx')
wb2 = openpyxl.load_workbook(filename='spistest.xlsx')
ws = wb1.get_sheet_by_name('Sheet1')
spis = wb2.get_sheet_by_name('Sheet1')
for row in ws.iter_rows(min_row=1, max_row=ws.max_row, min_col=1):
for cell in row:
if cell.value in compdict:
for wiersz in spis.iter_rows(min_row=1, max_row=spis.max_row, min_col=1):
for komorka in wiersz:
if komorka.value == compdict[cell.value]:
cena = spis.cell(row=komorka.row, column=2)
ws.cell(row=cell.row, column=2, value=cena.value)
wb1.save('inputtest.xlsx')
wb2.close()