web-dev-qa-db-ja.com

Pythonを使用して、別のExcelファイルからコピーした列を含むExcelファイルを作成します

さまざまな数の列を含むExcelファイルがあり、Pythonを使用してそのファイルの特定の列(ヘッダー行の値から)をループし、それらの列を別のExcelファイルに書き込み(コピー)したいです。

これを行う方法の例はありますか?

24
salamey

以下から選択するいくつかのオプションがあります。

  • xlwt (xlsファイルの書き込み)
  • xlrd (xls/xlsxファイルの読み取り)
  • openpyxl (xlsxファイルの読み取り/書き込み)
  • xlsxwriter (xlsxファイルの書き込み)

データのみを(フォーマット情報なしで)コピーする必要がある場合は、これらのツールの任意の組み合わせを読み取り/書き込みに使用できます。 xlsファイルがある場合は、xlrd + xlwtオプションを使用する必要があります。

既存のExcelファイルから新しい行に最初の行をコピーする簡単な例を次に示します。

import xlwt
import xlrd

workbook = xlrd.open_workbook('input.xls')
sheet = workbook.sheet_by_index(0)

data = [sheet.cell_value(0, col) for col in range(sheet.ncols)]

workbook = xlwt.Workbook()
sheet = workbook.add_sheet('test')

for index, value in enumerate(data):
    sheet.write(0, index, value)

workbook.save('output.xls')
42
alecxe