2016-05-11 16 views
0

同様の最後の行を持つExcelファイルのリストがあります。クライアントに関する個人情報(氏名、姓、電話番号)が含まれています。各Excelファイルは各クライアントに対応しています。私は、すべてのクライアントに関するすべてのデータを含む1つのファイルを作成する必要があります。 私はそれを自動的に行うことにしたので、openpyxlライブラリを見てみました。 私はそのようなコードを書いたが、正しく動作しません。openpyxlを使用してexcelファイルの配列から最後の行を別のExcelにインポートする方法

私のテストディレクトリに私は3つのファイルがあります。

import openpyxl 
import os 
import glob 
from openpyxl import load_workbook 
from openpyxl import Workbook 
import openpyxl.styles 
from openpyxl.cell import get_column_letter 

def get_range(file, new_file): 

    prize_sheet = prize_info.active 
    sheet = f.active 
    for row_num in range (1, len(file_array_reciever)): 
     for col_num in range (3,sheet.max_column): 
      prize_sheet.cell(row = row_num, column = col_num).value = sheet.cell(row = sheet.max_row, column = col_num).value 

    return prize_info.save("Ex.xlsx") 



#path to test files 
path_kit = 'prize_input/kit' 

#creating single document 
prize_info = Workbook() 

file_array_reciever = [] 

for file in glob.glob(os.path.join(path_kit, '*.xlsx')): 
    file_array_reciever.append(file) 


for file in glob.glob(os.path.join(path_kit, '*.xlsx')): 
    file_array_reciever.append(file) 
    f = load_workbook(filename = file) 
    get_range(f,prize_info) 

は、私は、出力ファイルに、私は最初から3つの同じ行を取得既存の行を上書きするファイル

答えて

0

機能get_range()が優れているため、私は、私のループに問題があると思います。

ws.rows[-1]を使用して、どのシートからも最後の行を取得できるはずです。何かのように

for f in file_array_receiver: 
    sheet = f.active 
    prize_sheet.append(f.rows[-1][:3]) 

あなたが探しているかもしれません。

関連する問題