2017-02-14 7 views
0

私はPythonに助けが必要です。基本的に私は2つのファイルを持っています(この例はfile1とfile2です)。 File1には複数のシートがあり、file2は1枚だけです。だから、file2のいくつかの作業の後、私は必要なDataFrameを持っています。そして、このDataFrameをfile1の特定のシートに貼り付ける必要があります。xlsxから別のxlsxの特定のシートにコピー

File1 

    A  B  C  D   E   F   G 
<data> <data> <data> <data> <formula> <formula> <formula> 
<data> <data> <data> <data> <formula> <formula> <formula> 
<data> <data> <data> <data> <formula> <formula> <formula> 
<data> <data> <data> <data> <formula> <formula> <formula> 
<data> <data> <data> <data> <formula> <formula> <formula> 
<data> <data> <data> <data> <formula> <formula> <formula> 

File2 

    A   B   C   D   
<Newdata> <Newdata> <Newdata> <Newdata> 
<Newdata> <Newdata> <Newdata> <Newdata> 
<Newdata> <Newdata> <Newdata> <Newdata> 
<Newdata> <Newdata> <Newdata> <Newdata> 
<Newdata> <Newdata> <Newdata> <Newdata> 
<Newdata> <Newdata> <Newdata> <Newdata> 

So now i need to update the file one with the new Data. 

File1 

    A   B   C   D   E   F   G   
<Newdata> <Newdata> <Newdata> <Newdata> <formula> <formula> <formula> 
<Newdata> <Newdata> <Newdata> <Newdata> <formula> <formula> <formula> 
<Newdata> <Newdata> <Newdata> <Newdata> <formula> <formula> <formula> 
<Newdata> <Newdata> <Newdata> <Newdata> <formula> <formula> <formula> 
<Newdata> <Newdata> <Newdata> <Newdata> <formula> <formula> <formula> 
<Newdata> <Newdata> <Newdata> <Newdata> <formula> <formula> <formula> 

ので、列はE、FおよびGは、私がこれを行うためのさまざまなオプションを試してみてください、列A、B、C、Dの

のデータによって更新されているいくつかの式を有します。両方のファイルを連結して、私が試した列を表示し、両方のファイルを読み込んで、新しい情報で新しいファイルを作成してください...主な問題は、ファイル1では、とG(数式付きのもの)は、他のシートを更新します。

だから、誰かが私に手を差し伸べてください。おかげで私は助けに感謝します

+0

は 'openpyxl'を使用してください。 '.xlsx'ファイルに必要なものすべてを扱うことができます。両方のファイルに 'xlsx'を使用すると私に知らせて、私ができる限りのことを助けるよう努力します。 'xlsb'ファイルに気付きました。それらの上でアイデア:( – Sid

+0

@Sid .xlsbは大きなxlsxです、私は両方のファイルでxlsxを使用することができます、あなたが私を助けることができます –

+0

ええと...私は行E、FとGのデータを保持するように見えません。理由を理解しようとしています今までコードを投稿することができます – Sid

答えて

0

はこれを行うには良い方法は間違いなくありますが、これは、私はそれを行うことができる方法である。

from openpyxl import load_workbook 
import os 

os.chdir("Directory Path here") 
wb = load_workbook('file.xlsx') 
ws = wb.active 
#or use the below to pick sheet as by name 
# ws = wb.get_sheet_by_name 
inde = [] 
val = [] 
for col in ws.iter_cols(): 
    for cell in col: 
     h = cell.coordinate 
     inde.append(h) 
     v = cell.value 
     val.append(v) 
diction = dict(zip(inde,val)) 

wb1=load_workbook('file1.xlsx') 
ws1 = wb1.active 

for i in diction.keys(): 
    ws1[i] = diction[i] 
    wb1.save('file1.xlsx') 
+0

ありがとうSid、この解決策を試してみましょう –

+0

@CarlosArronteBelloは動作しましたか? – Sid

+0

こんにちは。 'for col in ws.iter_cols(): AttributeError: 'ワークシート'オブジェクトに属性 'iter_cols''がありません –

関連する問題