Pythonで週次レポートを作成したい場合(PythonはPandasを使用してExcelの読み取りと書き込みを行います)

2つの文で始まるBB

基本的に、毎週金曜日に書かれる週報はこのルーチンです。

clipboard2.png

突然、Pythonを使用してインテリジェントに作業し、Excelテーブルを変更したいと思います。

セルの結合とテーブルスタイルの変更の操作を忘れてください。最初に単純な読み取りと書き込みを行うだけです。

操作プロセス

Pythonをインストールする

良いことをしたいのなら、まず工具を研ぎ澄まさなければなりません。まず、準備作業をします。開発環境は不可欠です。

インストールパッケージを公式ウェブサイトから直接ダウンロードします。バージョン3.6.5を使用しています。ダウンロードしてインストールした後、環境変数を構成します。

開発ツールについては、vscodeを直接使用し、Pythonプラグインをインストールしました。

ctl + alt + Pを押したままにして、Python選択インタープリターを設定します。

clipboard.png

パンダの公式ウェブサイトアドレス

pandas.pydata.org/

パンダ中国語ドキュメント

www.pypandas.cn/

パンダインストールパッケージ

Excelを処理するパンダにはxlrd、openpyxlの依存関係が必要です

pip install pandas
pip install xlrd
pip install openpyxl
复制代码

始めましょう

公式サイトに掲載されているように、使い方は1、2、3と簡単です。

# 1、安装包
$ pip install pandas

# 2、进入python的交互式界面
$ python -i

# 3、使用Pandas
>>> import pandas as pd
>>> df = pd.DataFrame() 
>>> print(df)

# 4、输出结果
Empty DataFrame
Columns: []
Index: []
复制代码

Excelを作成し、データを書き込む

import  pandas  as pd
from pandas import DataFrame

#创建DataFrame可以用下面字典,也可以用数组ndarray
dic = {'标题列1': ['malena','morgan'],
        '标题列2': [36, 34]
       }
df = pd.DataFrame(dic)
df.to_excel('write_test.xlsx', index=False)
复制代码

pyファイルを実行して正常に書き込みます。とても気持ちがいいです。

clipboard1.png

pandasDataFrameオブジェクトの紹介

import pandas as pd
from pandas import DataFrame
复制代码

Excelファイルに書き込む、公式の例:

df.to_excel('foo.xlsx', sheet_name='Sheet1')
复制代码

Excelファイルを読む、公式の例:

 pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA'])
复制代码

ここに小さな穴があります:

その理由は、xlrdが最近バージョン2.0.1に更新され、.xlsファイルのみをサポートしているためです。したがって、pandas.read_excel('xxx.xlsx')はエラーを報告します。

古いバージョンのxlrdをインストールして、cmdで実行できます。

pip uninstall xlrd
pip install xlrd==1.2.0
复制代码

xlrdの代わりにopenpyxlを使用して.xlsxファイルを開くこともできます。

df=pandas.read_excel(‘data.xlsx’,engine=‘openpyxl’)
复制代码

Excelファイルを読んで印刷します

data = pd.read_excel('zmy-weekly.xlsx', sheet_name='3月', engine='openpyxl')
print(data)
复制代码

印刷結果は以下のとおりです。

clipboard3.png

data.locの値を変更してデータを変更します。data.locは、各行と各列のセルに対応する2次元配列として大まかに理解できます。

たとえば、「作業項目2」を「作業項目5」に変更します。これは、対応する単一の数値セル、行2、列2です。

 data.loc[3][2] = '工作事项5';
复制代码

変更が完了し、最後に新しいExcelシートが書き込まれます。たとえば、sheet_nameを「March」に設定できます。

 DataFrame(data).to_excel('new.xlsx', sheet_name='3月', index=False, header=True)
复制代码

完全なコードは次のとおりです。

import pandas as pd
from pandas import DataFrame

# 3.8.2 pandas读写Excel
def write_weekly():
    data = pd.read_excel('zmy-weekly.xlsx', sheet_name='3月', engine='openpyxl')
    print(data)

    print(data.loc)

    data.loc[2][0] = '3月5周';
    data.loc[2][2] = '工作事项4';
    data.loc[3][2] = '工作事项5';
    data.loc[4][2] = '工作事项6';

    data.loc[2][4] = '已完成';
    data.loc[3][4] = '已完成';
    data.loc[4][4] = '已完成';

    data.loc[5][2] = '又是一个临时工作';


    data.loc[6][0] = '4月1周';

    data.loc[6][2] = '工作事项7';
    data.loc[7][2] = '工作事项8';

    data.loc[6][4] = '进行中';
    data.loc[7][4] = '进行中';

    # # 保存数据
    DataFrame(data).to_excel('new.xlsx', sheet_name='3月', index=False, header=True)


write_weekly();
复制代码

clipboard5.png

スタイルは違いますが、大きな問題ではありません。先週の週次レポートを開き、すべてを選択してからフォーマットし、新しい週次レポートをクリックします。

clipboard6.png

セルフトーク

つまり、Excelはすでに開かれているので、もっと速く変更してみませんか?

しかし、しばらく投げた後、Pythonを介してPandasを使用してExcelを読み書きする基本的な操作について明確にする必要がありました。今後も時々投げます。

おすすめ

転載: juejin.im/post/7080431880301969444