この記事の内容は、Python環境でExcelを操作する方法を共有することです。必要な友人はそれを参照できます
1. Excelテーブルを処理します。 python 、一般的に使用されるライブラリには、xlrd (Excel 読み取り) テーブル、xlwt (Excel 書き込み) テーブル、openpyxl (Excel テーブルの読み取りおよび書き込み) などが含まれます。大きなデータを含む Excel テーブルを読み取る場合は、openpyxl よりも xlrd の方が効率的であるため、スクリプトを作成するときに xlrd と xlwt の 2 つのライブラリを使用しました。 これらのライブラリ ファイルには、既存の Excel テーブルの内容を変更する機能はありません。通常、元の Excel の内容は、読み取って処理し、新しい Excel ファイルに書き込むことしかできません。
を使用して確認すると、より多くの開発パッケージを確認できます。pip search excel
2. よくある質問
Python を使用して Excel テーブルを処理する場合、Unicode エンコードと Excel に記録された時間という 2 つのさらに難しい問題が見つかりました。
Python のデフォルトの文字エンコーディングは Unicode であるため、Excel から読み取った中国語の文字を印刷したり、中国語の名前を持つ Excel のテーブルやシートを読み込んだりすると、プログラムはエラー「UnicodeEncodeError: 'ascii' codec can't encodecharacters in Position 0 -2: ordinal」を表示します。範囲内にありません(128)。これは、Windows では中国語が gb2312 エンコード方式を使用しており、Python がそれをデコードするために Unicode および ASCII として扱うため、エラーが報告されるためです。 VAR.encode(‘gb2312’) を使用して、中国語の印刷の問題を解決します。 (不思議なことに、結果が印刷できる場合もありますが、表示されるのは中国語ではなく、コードの束です。) 中国語のファイル名を持つ Excel テーブルからデータを読み取りたい場合は、前に 'u' を追加できます。中国語のファイル名が Unicode でエンコードされていることを示すファイル名。
Excelでは、時刻と日付は浮動小数点数を使用して表現されます。 「2013年3月20日」のセルを「通常」の形式で表現すると内容は「41353」となり、セルの形式を日付に変更すると内容は「2013年3月20日」となることがわかります。 Excelでxlrdを使用して日付と時刻を読み取ると、浮動小数点数が取得されます。したがって、Excel に書き込まれる日付と時刻が浮動小数点数であるかどうかは問題ではありません。通常の表現を取得するには、テーブルの表現を日付と時刻に変更するだけです。 Excel では、浮動小数点数 1 を使用して 1899 年 12 月 31 日を表します。
3.よく使われる関数
以下では主にxlrd、xlwt、datetimeの日付関連の関数を紹介します。
import xlrdimport xlwtfrom datetimedef testXlrd(filename): book=xlrd.open_workbook(filename) sh=book.sheet_by_index(0) print "Worksheet name(s): ",book.sheet_names()[0] print 'book.nsheets',book.nsheets print 'sh.name:',sh.name,'sh.nrows:',sh.nrows,'sh.ncols:',sh.ncols print 'A1:',sh.cell_value(rowx=0,colx=1) #如果A3的内容为中文 print 'A2:',sh.cell_value(0,2).encode('gb2312')def testXlwt(filename): book=xlwt.Workbook() sheet1=book.add_sheet('hello') book.add_sheet('word') sheet1.write(0,0,'hello') sheet1.write(0,1,'world') row1 = sheet1.row(1) row1.write(0,'A2') row1.write(1,'B2') sheet1.col(0).width = 10000 sheet2 = book.get_sheet(1) sheet2.row(0).write(0,'Sheet 2 A1') sheet2.row(0).write(1,'Sheet 2 B1') sheet2.flush_row_data() sheet2.write(1,0,'Sheet 2 A3') sheet2.col(0).width = 5000 sheet2.col(0).hidden = True book.save(filename)if __name__=='__main__': testXlrd(u'你好。xls') testXlwt('helloWord.xls') base=datetime.date(1899,12,31).toordinal() tmp=datetime.date(2013,07,16).toordinal() print datetime.date.fromordinal(tmp+base-1).weekday()
Excel を処理するための Python モジュール Excel モジュールでのさまざまな Python 操作の比較
以上がPython環境でExcelを操作する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。