レポートを自動化できれば、時間を大幅に節約し、作業をより効率的に完了することができます。では、pythonを使用してレポートの自動化を実現するにはどうすればよいですか?この記事では、xlwt、xlrd、xlutilsの一般的な機能、xlwtがExcelを書き込むときの数式のアプリケーション、およびxlwtが特定のディレクトリに書き込んで全員がレポートを自動化できるようにする方法を紹介します。
1、python書き込みexcel
(1)xlwtをインストールする準備:ターミナルにpip install xlwtまたはeasy_install xlwtと入力して、xlwtパッケージをインポートします。
インポートxlwt#書き込み
(2)基本的なチュートリアルで新しいワークブックを作成してシートを追加する:新しいワークブックを作成してからシートを追加する
f = xlwt.Workbook()#ワークブックを作成 sheet1 = f.add_sheet(u'sheet1 '、cell_overwrite_ok = True)
複数のシートをExcelシートに追加して、コンテンツをシートに書き込むことができます。
sheet.write関数は、i(パラメーター1)、j(パラメーター2)の3つのパラメーターを渡し、コンテンツ(パラメーター3)を保存できます。
sheet1.write(i、j、「行iと列jはこのコンテンツを格納する」、スタイル)
このステートメントによって実現される機能は、i番目の行とj番目の列の3番目のパラメーターの内容を格納することです。4番目のパラメーターはスタイル(フォントや背景など)であり、4番目のパラメーターは省略できます。
セルを結合してコンテンツを書き込む:
sheet1.write_merge(x、x + m、y、y + n、 '内容'、スタイル)
このyステートメントは、[x:x + m]行[y:y + n]列の行列が1つのセルにマージされることを意味します。5番目のパラメーターの#コンテンツを保存します。同様に、スタイルパラメーターはパラメーターなしで渡すことができます。最後に、f.save( 'demo')を使用してfをExcelに保存します
(3)実際の戦闘では、まず新しいワークブックを作成し、それに2枚のシートを追加して、効果を確認できます。
#コーディング= utf-8 インポート xlwt f = xlwt.Workbook()#ワークブックを作成 sheet1 = f.add_sheet(u'table one '、cell_overwrite_ok = True) sheet2 = f.add_sheet(u'table two'、cell_overwrite_ok = True ) 保存( 'xlwt_tutorial')
スタイルパラメータを使用せずに、コンテンツをシートに書き込み始めました。最初に書き込み関数のみを使用します
import xlwt f = xlwt.Workbook()#ワークブックを作成 sheet1 = f.add_sheet(u'Table one '、cell_overwrite_ok = True) sheet2 = f.add_sheet(u'Table two'、cell_overwrite_ok = True) row = 0 temp = [ u'name '、u'age'、u'school '、u'professional '] pos、vの列挙(temp):sheet1.write(row、pos、v) row + = 1 sheet1.write(row 、0、u ' 张三')sheet1.write(row、1,18) sheet1.write(row、2、u'Tsinghua University ') row + = 1 sheet1.write(row、0、u'李四 ' ) sheet1.write(row、1,20) sheet1.write(row、2、 u'Peking University ')f.save(' xlwt_tutorial ')
このようにして、3行4列のテーブルを作成しました。
(write関数の行と列の値は0から始まります)次に、write_merge関数を使用してセルをマージし、f.saveの前にコード行を書き込みます。
sheet1.write_merge(1,2,3,3、u'Chinese Language and Literature ')
行2〜3、列4を組み合わせる2. pythonxd read excel
(1)xlrdをインストールする準備:ターミナルにpip install xlrdまたはeasy_install xlrdと入力して、xlrdパッケージを導入します。
インポートxlrd#読み取り
(2)基本的なチュートリアルと実際の操作Excelを開き、すべてのシートの名前を出力する
#コーディング= utf-8 インポートxlrd インポートuniout f = xlrd.open_workbook(r'xlwt_tutorial ') print f.sheet_names() 出力:[u'表一 '、u'表二 ']
テーブル内のすべてのシートを取得します
for i for range(len(f.sheet_names())):sheet1 = workbook.sheet_by_index (i)
シートのコンテンツを取得する
#コーディング= utf-8 f = xlrd.open_workbook(r'xlwt_tutorial ')sheet1 = f.sheet_by_index(0)#最初のシートを 開くsheet2 = f.sheet_by_name(u'表二 ')#小さなブドウの名前を開くsheet #出力 シート名、行数、列数print sheet1.name、sheet1.nrows、sheet1.ncols print sheet2.name、sheet2.nrows、sheet2.ncols 出力は次のとおりです。Table 1 3 4 Table 2 0 0 print sheet1。 row_values(1) #2行目の内容を取得しますprint sheet1.col_values(2)#3列目の内容を取得します 出力は[u '张三'、18.0、u'Tsinghua University '、u'Chinese Language and Literature'](u 'School'、 u'Tsinghua University '、u'Peking University'] #セルコンテンツの取得print sheet1.cell(1,0).value #セルコンテンツデータタイプの取得 print sheet1.cell(1,1) ctype #ctype:0空、1文字列、2数値、3日付、4ブール値、5エラー 出力は:Zhang San 2
3. xlutilsの共通機能
(1)xlutilsをインストールする準備:ターミナルでpip install xlutilsまたはeasy_install xlutilsと入力して、xlutilsパッケージを導入します。
xlutilsをインポートする
(2)xlutilsのコピー機能で問題が発生し、保存されているExcelを編集したい***。ただし、xlrdは読み取り専用モードであり、書き込むことはできません。また、xlwtは書き込み専用モードであり、Excelファイルに読み込んで編集することはできません。xlrdを使用してドキュメントを開き、xlutilsのコピー機能を使用してドキュメントをコピー*して編集できます。
xlutils.copy からxlrdをインポートしますimport copy f = xlrd.open_workbook(r'xlwt_tutorial ') wb = copy(f) #f をwbにコピーしますsheet1 = wb.get_sheet(0)#シートを開く print sheet1.name sheet1.write( 3,0、 'change') wb.save( 'xlwt_tutorial') の出力は次のとおりです。表1の出力テーブルが変更されました。
(4)xlwtがExcelに書き込むときの式の適用、xlwtでテーブルを書き込むように書き込む
コーディング= utf-8 インポート xlwt f = xlwt.Workbook()#ワークブック シートを作成1 = f.add_sheet(u'score statistics '、cell_overwrite_ok = True) mdict = {"monkey":{"writing":80、 "reading 「:60」、スピーキング「:70」、リスニング「:60}、 「ぶどう」:{「書き込み」:100、読み「:80」、スピーキング「:70」、聞く「:60}} sheet1.write (0,0、 u'score statistics ')sheet1.write(1,0、u'calligraphy score') sheet1.write(2,0、 u'reading score ')sheet1.write(3,0、u' speechスコア ') sheet1.write(4,0、u'listening score') temp = ['writing'、 'reading'、 'speaking'、 'listening'] for pos、name in enumerate(mdict): sheet1.write( 0、pos + 1、name) for p、v in enumerate(temp): sheet1.write(p + 1、pos + 1、mdict [name] [v]) f.save( 'score statistics')
ブドウの合計スコアと猿の合計スコアをカウントします。f.saveの前にコードを追加します。
sheet1.write(5,0、u '总分统计') for i for range(len(mdict)): forstr = chr(65 + i + 1)+ '2 +' + chr(65 + i + 1) + '3 +' + chr(65 + i + 1)+ '4 +' + chr(65 + i + 1)+ '5' print forstr sheet1.write(5、i + 1、xlwt.Formula(forstr) ) 出出: B2 + B3 + B4 + B5 C2 + C3 + C4 + C5
5、特定のディレクトリへのxlwt書き込み
コードの階層化により、コードの全体的なフレームワークは美しいです。ファイルを特定のディレクトリに書き込む必要があります。ただし、xlwtの特定のディレクトリに直接書き込む機能はありません。
したがって、shutil.move関数を使用して、ファイルを特定のディレクトリにMOVします。
##コーディング= utf-8 インポート xlwt インポートos インポートシャットダウン パス= '../sheet/' isExists = os.path.exists(path) #isExists がない場合はディレクトリが存在するかどうかを確認:#ディレクトリが存在しない場合は、新しいディレクトリ osを作成.makedirs(パス) f = xlwt.Workbook()#ワークブックを作成 シート1 = f.add_sheet(u'score statistics '、cell_overwrite_ok = True) mdict = {"monkey":{"writing":80、 "reading": 60、 "speaking":70、 "listening":60}、 "grape":{"writing":100、 "reading":80、 "speaking":70、 "listening":60}} sheet1.write(0 、0、 u'score statistics ')sheet1.write(1,0、u'calligraphy score') sheet1.write(2,0、 u'reading score ')sheet1.write(3,0、u'speech score' ) sheet1.write(4,0、u '挺力得分 ') temp = [' writing '、' reading '、' speaking '、' listening '] 列挙力(mdict)のpos、nameの: enumerate(temp)のp、vに対する sheet1.write(0、pos + 1、name): sheet1.write(p + 1、pos + 1、mdict [name] [v]) sheet1.write(5,0、 u '总分统计') for i in range(len(mdict)): forstr = chr(65 + i + 1)+ '2 +' + chr(65 + i + 1)+ '3 +' + chr( 65 + i + 1)+ '4 +' + chr(65 + i + 1)+ '5' print forstr sheet1.write(5、i + 1、xlwt.Formula(forstr)) f.save( '得分统计') shutil.move(u'得分统计 '、パス)
上記は、Pythonを使用してレポートの自動化を実現する特定の手順です。習得しましたか?Pythonをまだ使用していない場合は、Pythonを使用してレポートを自動化する方法を理解できません。
Pythonを学習したい場合、またはPythonを学習している場合は、Pythonのチュートリアルがたくさんありますが、最新ですか?おそらく、2年前に人々が学んだかもしれないことを学んだかもしれません。ここで、2020年の最新のPythonチュートリアルの波を共有します。入手方法は、プライベートレターの「お知らせ」を編集して無料で入手できます!