ホームページ  >  記事  >  バックエンド開発  >  Pythonでデータ日報を自動生成!

Pythonでデータ日報を自動生成!

王林
王林転載
2023-05-25 17:01:081561ブラウズ

Pythonでデータ日報を自動生成!

実際には、非常に単純だと思います。核となるのは、日報のコンテンツ テンプレートを組み立て、変更後の金額を Python に渡して入力することです。 ExcelやWordを処理するには基本的にPythonが必要です。PPTなどに関連するライブラリも必要です。それらを上手に使えば、プロセス全体を自動化できます。

日刊新聞は、ほとんどの移民労働者にとって避けられない問題です。

マネージャーにとって、日報は事前に管理し、チームの雰囲気や状況を把握するのに最適な方法です。しかし、従業員にとっては話すことは何もありません。反復的な作業については、Python を使用してモジュール化して自動化し、効率的なオフィス作業を実現することを強くお勧めします。

営業日報を補足するケースを通して、Python の自動オフィスの利点を実証しましょう。この記事ではこのケースのプロセスを簡略化しており、完全なコードは記事の最後に添付されています。

Pythonでデータ日報を自動生成!

要件の詳細説明

私の友人のニーズは次のとおりです。普段の売上データを Excel に記録し、集計した後、統計を作成します。部門。ところが、今年の初めにリーダーから突然「日報を書くように」と言われて、1ヶ月書いた後にチェックをしていなかったことに気づき、書くのをやめてしまいました。

Pythonでデータ日報を自動生成!

明日、急遽今月までの日報をすべて提出することになりました。これは、2月から5月までの日報120日分に相当します。両手でコピペすると多分血を吐きます。友人が日報を書くために関連書類をすべて送ってくれたところ、日報の最終的な効果は次のとおりであることがわかりました。

Pythonでデータ日報を自動生成!

したがって、要件は比較的単純で、Excel テーブルから毎日のデータを読み取り、Python を使用して処理し、それを Word 文書に書き込むだけです。 、日次レポートをバッチで生成できます。

データ処理

データ処理を実行する前に、まず最終的に必要なデータを理解する必要があります。下図に示すように、Word で作成した対象日報は主に 2 つのカテゴリに分かれており、赤でマークされた値は主にその日のデータまたは計算後のデータで構成され、緑でマークされた表はより単純なものは、過去7日間のデータ(販売数量、販売金額、販売目標、完成度)です。

Pythonでデータ日報を自動生成!

まず、データ処理用の Pandas モジュールをインポートします。

import pandas as pd
df = pd.read_excel("日报数据.xlsx")
df

出力結果:

Pythonでデータ日報を自動生成!

データをインポートした後、必要に応じてデータ操作を実行できます。データ操作は主に 2 種類に分けられ、1 つは加算、減算、乗算 *、除算を使用してデータ操作を実行する方法、もう 1 つは統計的手法を使用してデータ操作を実行する方法です。

対話型環境で次のコマンドを入力します:

df["日期"] = df["日期"].apply(lambda x:x.strftime("%Y-%m-%d"))
df["当日完成度"] = (df["销售金额"]/df["销售目标"]*100).round(1)
df["累计销售金额"] = df["销售金额"].cumsum()
df["当年完成度"] = (df["累计销售金额"]/2200000*100).round(1)
df["累计销售金额"] = (df["累计销售金额"]/10000).round(2)
df

出力結果:

Pythonでデータ日報を自動生成!

ご覧のとおり、最終結果はマークされています。スクリーンショットの赤色部分 データ内容はすべて計算済みです。緑色でマークされたテーブルはさらに単純で、Pandas モジュールのデータ選択を使用するだけです。

対話型環境で次のコマンドを入力します:

num = 10
df.iloc[num-7:num, :5]

出力結果:

Pythonでデータ日報を自動生成!

毎日の特定のコレクションを簡単に取得できます。その日から過去 7 日以内のデータ。

日報を自動生成する

Python を使って Word を自動操作するには、通常 python-docx モジュールを使用します。Word 文書を一括生成するには、add_paragraph() を使用する方法、add_table(() を使用する方法の 2 つが一般的です。 ) などの方法 Word 文書にさまざまなコンテンツを追加します。もう 1 つは今回使用するもので、元の Word 文書内のテキストと表のデータを位置に応じて置き換えます。

対話型環境で次のコマンドを入力します:

for index, rows in df.iterrows():
 if index > 30:
 doc.paragraphs[0].runs[1].text = rows[0]
 doc.paragraphs[4].runs[4].text = rows[0]
 doc.paragraphs[4].runs[6].text = str(rows[1])
 doc.paragraphs[4].runs[8].text = str(rows[2])
 doc.paragraphs[5].runs[1].text = str(rows[3])
 doc.paragraphs[5].runs[3].text = str(rows[4])
 doc.paragraphs[9].runs[2].text = str(rows[5])
 doc.paragraphs[9].runs[7].text = str(rows[6])
 table = doc.tables[0]
 data_table = df.iloc[index-6:index+1,:5]
 for i in range(7):
 for j in range(5):
 table.cell(i+1,j).text = str(df.iloc[i,j])

 doc.save(f"销售日报-{rows[0]}.docx")

コードを実行し、結果を出力します:

Pythonでデータ日報を自動生成!

図に示すように上記、120部 記録された売上日報が完成しました Pythonの自動オフィスはとても魔法です。

完全なコードを入手する方法:

リンク: https://www.php.cn/link/0d5a4a5a748611231b945d28436b8ece

抽出コード: p9iw

Python は構文がシンプルで使いやすいため、「初心者が学ぶのに最も適したプログラミング言語」と言われています。職場で繰り返されるさまざまなコンピューター タスクについては、Python を使用して自動プログラムに変換することを検討できます。

あなたが Python の初心者であれば、この記事のロジックは非常に単純であり、さらに改善することもできることがわかるでしょう。たとえば、python-docx モジュールは Word 文書を読み取る場合に利点がありますが、テキストをテンプレートに書き込む場合は、docxtpl モジュールの使用を検討できます (Jinja2 構文を少し学習してください)。

以上がPythonでデータ日報を自動生成!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。