目录
  • 开头先BB两句
  • 操作过程
    • 安装Python
    • Pandas安装包
    • 上手使用
    • 创建Excel,写入数据
  • 完整代码

    开头先BB两句

    基本上来说,每周五写的周报都是这个套路。

    Python调用Pandas实现Excel读取

    突然想用Python智能化办公,修改Excel表格。

    先不考虑,合并单元格,修改表格样式的操作。就先做个简单的读写。

    操作过程

    安装Python

    工欲善其事必先利其器,首先做好准备工作,开发环境必不可少。

    直接官网下载安装包,我使用的是3.6.5版本。下载安装后,配置环境变量。

    开发工具,我就直接用的vscode,安装了一个python插件。

    按住 ctl + alt + P 设置Python选择解释器即可。

    Python调用Pandas实现Excel读取

    Pandas官网地址

    Pandas中文文档

    Pandas安装包

    pandas处理 Exce l需要 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文件,成功写入,感觉就是非常的奈斯。

    Python调用Pandas实现Excel读取

    引入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

    也可以用openpyxl代替xlrd打开.xlsx文件:

    df=pandas.read_excel(‘data.xlsx',engine=‘openpyxl')

    读取Excel文件,并且打印出来

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

    打印结果如下图所示:

    Python调用Pandas实现Excel读取

    通过修改 data.loc 的值,改变数据。data.loc 可以粗浅的理解为是一个二维数组,对应每一行每一列的单元格。

    譬如,将“工作事项2”修改为“工作事项5”,对应的单号格,第3行,第2列

     data.loc[3][2] = '工作事项5';

    修改完成,最后写入新的Excel表格,可以设置sheet_name,譬如设置为“3月”。

     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();

    Python调用Pandas实现Excel读取

    样式不一样,但是问题不大。打开上周的周报,全选,然后格式刷,点击新增的周报,啊哈。

    Python调用Pandas实现Excel读取

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。