2017-01-12 5 views
0

私はPythonを初めて使用しています。最近、openpyxlを再生するだけです。 私はPythonを使ってスプレッドシートを作成したいと思いますが、セルの書式とスタイルは複雑であり、必ずしも必ずしも正しいとは限りません。Pythonを使用してExcelで特定の行の後に行を追加する方法

私はテンプレートを作成し、常にファイルから読み込んで新しいファイルとして保存することを考えています。これを行うために、私はいくつかの行を上書きしないようにしています。現在、私はサイズが追加されないので、Excelで行を追加するコードを使用します。

7行目のような特定の行から行を追加する方法はありますか?

私のコードは次のとおりです。

def Output(message): 

    wb = Workbook() 
    ws = wb.active 
    ws.title = 'Quotation' 
    Row_size = len(message) 
    for i in range (Row_size): 
     message_line = message[i] 

     ws.append(message_line) 

    wb.save('Quatation.xlsx') 
+0

あなたの場合テンプレートに書き込むよりも良いアイデアを持って、私も助けてください。ありがとう –

+0

パンダを試してみて..... –

答えて

0

パンダからモジュール使用DataFrame.to_excel。

1

ws.append()を使用するのではなく、ws.cell()関数を使用して、必要な行と列を指定します。 enumerate()は、渡されたリストの各エントリに対して7から始まる行番号を与えるために使用できます。

from openpyxl import Workbook 

def Output(message): 
    wb = Workbook() 
    ws = wb.active 
    ws.title = 'Quotation' 

    for row, text in enumerate(message, start=7): 
     ws.cell(column=1, row=row, value=text) 

    wb.save('Quotation.xlsx') 

Output(['hello', 'world']) 

あなたを与える:

excel screenshot


注意、あなたは行ごとに複数のセルを渡している場合は、次のように、あなたは第二のループが必要になります。

from openpyxl import Workbook 

def Output(message): 
    wb = Workbook() 
    ws = wb.active 
    ws.title = 'Quotation' 
    Row_size = len(message) 

    for row, row_entries in enumerate(message, start=7): 
     for column, value in enumerate(row_entries, start=1): 
      ws.cell(column=column, row=row, value=value) 

    wb.save('Quotation.xlsx') 

Output([['hello', 'world'], ['this', 'is', 'another', 'line']]) 
関連する問題