27

Excel スプレッドシートを読み取り、一部のワークシートを CSV ファイルとして保存する Python スクリプトを作成したいと考えています。

これどうやってするの?

Python から Excel ファイルを読み書きするためのサードパーティ モジュールを見つけましたが、私が知る限り、ファイルを Excel (つまり *.xls) 形式でしか保存できません。ここで私が間違っている場合は、これらのモジュールで私がやろうとしていることを行う方法を示すサンプルコードをいただければ幸いです。

また、よく理解できない解決策に出くわしましたが、Windows固有のようで、Unixでこれをやりたいので、とにかく役に立ちません。とにかく、このソリューションを拡張してやりたいことを実行できるかどうかは、Windows でも明らかではありません。

4

5 に答える 5

55

行ごとに説明されている 2 つのライブラリを使用した最も基本的な例:

  1. xls ワークブックを開く
  2. 最初のスプレッドシートを参照する
  3. バイナリで開く対象のcsvファイルを書き込む
  4. デフォルトの csv ライター オブジェクトを作成する
  5. 最初のスプレッドシートのすべての行をループします
  6. 行をcsvにダンプします

import xlrd
import csv

with xlrd.open_workbook('a_file.xls') as wb:
    sh = wb.sheet_by_index(0)  # or wb.sheet_by_name('name_of_the_sheet_here')
    with open('a_file.csv', 'wb') as f:   # open('a_file.csv', 'w', newline="") for python 3
        c = csv.writer(f)
        for r in range(sh.nrows):
            c.writerow(sh.row_values(r))

import openpyxl
import csv

wb = openpyxl.load_workbook('test.xlsx')
sh = wb.active
with open('test.csv', 'wb') as f:  # open('test.csv', 'w', newline="") for python 3
    c = csv.writer(f)
    for r in sh.rows:
        c.writerow([cell.value for cell in r])
于 2012-05-29T16:36:26.100 に答える
5

xlrd またはモジュールを使用してopenpyxlそれぞれ xls または xlsx ドキュメントを読み取り、モジュールを使用csvして書き込みます。

あるいは、Jythonを使用している場合は、Apache POIライブラリを使用して.xlsまたはを読み取ることができ.xlsx、ネイティブ CSV モジュールは引き続き使用できます。

于 2012-05-29T15:47:00.430 に答える