比较两个excel文件和CSV文件的方法

时间:2017-07-25 22:47:26

标签: excel python-2.7 csv comparison

我需要比较两个excel文件和一个csv文件,然后将一些excel文件中的一些数据写入另一个。

看起来像这样:

  • 包含我将要比较的名称的CSV文件。例如(垃圾邮件,鸡蛋)

  • 第一个带有名称和值的Excel文件。例如(垃圾邮件,100)

  • 带有名称的第二个Excel文件。例如(鸡蛋)

现在,当我将文件(第二个)输入程序时,我需要确保鸡蛋==垃圾邮件与csv文件,然后将值100保存到鸡蛋。

对于我正在使用csv的excel文件进​​行操作而对于csv我正在使用deploy:deploy-file

我可以指望你的帮助吗?也许有更好的图书馆可以做到这一点,因为我的试验证明是完全失败的。

1 个答案:

答案 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()