2017-07-25 32 views
-1

2つのExcelファイルとCSVファイルを比較し、1つのExcelファイルから別のファイルにデータを書き込む必要があります。2つのExcelファイルとCSVファイルを比較する方法

それは次のようになります。私は比較する名前を持つ

  • CSVファイル。たとえば、(迷惑メール、卵)

  • 名前と値のある最初のExcelファイル。たとえば、(スパム、100)

  • 名前付きの2番目のExcelファイル。例えば(卵)今

、私は入力ファイル(秒)プログラムに私は卵が== csvファイルでスパムや、その後の卵に100の値を保存していることを確認する必要があります。

私はopenpyxlを使用しています。私はcsvを使用しています。

あなたのお役に立てれますか?私の裁判が完全な失敗であることが判明したので、それを行うためのより良い図書館があるかもしれません。

+0

Welcome to Stack Overflow。私たちはコード作成サービスではありません。良い質問を書く方法については、[ヘルプセンター](https://stackoverflow.com/help/how-to-ask)を参照してください。あなたが試したこと、あなたが立ち往生した場所を教えてください。私たちは喜んでお手伝いします。 – agtoever

+0

私は問題の解決策を尋ねませんでしたが、そのような仕事をするライブラリについては... – Wakun

+0

上記のライブラリがうまくいかない理由を説明していないと、他のライブラリを見つけることができません。あなたは何を試していますか、どこにいらっしゃいますか? – agtoever

答えて

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() 
関連する問題