Если я хочу написать еженедельный отчет на Python (Python использует Pandas для чтения и записи Excel)

Начните с двух предложений BB

По сути, недельный отчет, который пишется каждую пятницу, и есть эта рутина.

буфер обмена2.png

Внезапно я хочу использовать Python для интеллектуальной работы и изменения таблиц Excel.

Забудьте об операциях объединения ячеек и изменения стилей таблиц. Просто сделайте сначала простое чтение и запись.

Процесс работы

Установить Python

Если вы хотите делать хорошие вещи, вы должны сначала отточить свои инструменты.Прежде всего, сделать подготовительную работу, и среда разработки имеет важное значение.

Скачайте установочный пакет прямо с официального сайта, я использую версию 3.6.5. После загрузки и установки настройте переменные среды.

Для инструментов разработки я использовал vscode напрямую и установил плагин python.

Нажмите и удерживайте ctl + alt + P, чтобы установить интерпретатор выбора Python.

буфер обмена.png

Адрес официального сайта Pandas

pandas.pydata.org/

Китайская документация Pandas

www.pypandas.cn/

Установочный пакет панд

Pandas для обработки 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 и успешно напишите его, это очень приятно.

буфер обмена1.png

Знакомство с объектами pandas DataFrame

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
复制代码

Также можно открывать файлы .xlsx с помощью openpyxl вместо xlrd:

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

Прочитайте файл Excel и распечатайте его

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

Результат печати показан ниже:

буфер обмена3.png

Измените данные, изменив значение data.loc. data.loc можно грубо представить как двумерный массив, соответствующий ячейкам каждой строки и каждого столбца.

Например, измените «рабочий элемент 2» на «рабочий элемент 5», соответствующую ячейку с одним числом, строку 2, столбец 2.

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

Модификация завершена, и, наконец, написан новый лист Excel.Вы можете установить имя_листа, например, установить его на «Март».

 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();
复制代码

буфер обмена5.png

Стили разные, но это не большая проблема. Откройте еженедельный отчет за прошлую неделю, выберите все, затем отформатируйте, нажмите на новый еженедельный отчет, ага.

буфер обмена6.png

разговор с самим собой

Другими словами, Excel уже открыт, почему бы просто не изменить его быстрее?

Однако, повозившись какое-то время, я должен был прояснить основные операции чтения и записи Excel с помощью Pandas через Python. Я буду бросать снова время от времени в будущем.

рекомендация

отjuejin.im/post/7080431880301969444
рекомендация