首页 > 生活服务 > 程序猿源

程序猿源

python之excle模块

管理员 10月前 165浏览

对Python操作Excel的几个常用库,横向比对


一、安装

7个模块均为非标准库,因此都需要在命令行中进行安装:

pip install xlrd
pip install xlwt
pip install xlutils
pip install xlwings
pip install XlsxWriter
pip install openpyxl
pip install pandas

主要使用以下库:

  • openpyxl:用于读取和写入 Excel 文件。

  • pandas:用于数据处理和分析。

  • xlwings:用于将 Python 与 Excel 连接,实现双向通信,需要命令行安装插件 输出命令:xlwings addin install

excel 2010及以上(xlsx)使用 openpyxl

excel 2007 (xls)使用xlrd

pandas也是依赖openpyxl和xlrd的

二、模块导入

从上图就可以了解到,一般情况下用xlwings 或者pandas加上openpyxl基本都可以完成excle的所有操作:

# 导入表格数据读取及处理模块
import pandas as pd
# 导入数据计算模块
import numpy as np
# 导入时间处理模块
from datetime import datetime
# 导入读取和修改excel的模块
from openpyxl import load_workbook,Workbook
# 导入表格样式处理模块
from openpyxl.styles import *
# 比较字符串相似度的模块
import difflib

1)xlwings支持.xls读,支持.xlsx文件读写。

2)支持Excel操作。

3)支持VBA。

三、xlwings常用代码


xlwings在Linux下的使用方法与局限性,xlwings的更新文档中,我发现了linux通用的使用方式,不能操作和保存文档

xlwings会帮助你创建.xlsm.py两个文件,在.py文件里写python代码,在.xlsm文件里点击执行,就完成了excel与python的交互。

安装插件后,在命令提示符输出 xlwings quickstart ProjectName  就可以创建两个文件,就是之前说的.xlsm.py文件

我们打开.xlsm文件,这是一个excel宏文件,xlwings已经提前帮你写好了调用Python的VBA代码。

按快捷键Alt + F11,就能调出VBA编辑器。



读取Excel文件的操作

Excel程序用App来表示,多个Excel程序集合用Apps表示;
App就是我们打开的一个Excel应用,在此实例下创建工作薄。因此我们要创建工作簿,就必须先创建App实例。一个App实例可以创建多个工作簿Book。
单个工作簿用Book表示,工作簿集合用Books表示;
单个工作表用Sheet表示,工作表集合用Sheets表示;
区域用Range表示,既可以是一个单元格,也可以是一片单元格区域。



读取需要先实例化一个App对象,执行以下语句:
app = xw.App(visible=True, add_book=False);  实例化一个app并设置可见
app.display_alerts=False 设置不显示警告
wb = app.books.open('H://test.xlsx') 传入Excel文件路径打开文件;
获取第一个sheet表,执行语句:sht = wb.sheets[0]
获取sheet表中单元格数据的方式如下:
print(sht.range('A1').value) 读取单个
print(sht.range((1, 1), (5, 5)).expand().value)  # 批量读取
print(sht.range(1, 1).expand('right').value)  # 按行读
print(sht.range(1, 1).expand('down').value)  # 按列读

写文件操作:

最简单的写文件操作步骤:
使用xlwings.App()打开Excel
使用app.books.add()添加一个工作簿
使用book.sheets.add()添加一个工作表
使用sheet.range('A1').value="A"给指定的单元格赋值
使用book.save('文件路径.xlsx')保存文件;


def writeExcel():
    #使用with打开excel,可以不关心关闭的问题,参数标识操作可见
    with xw.App(visible=True,add_book=False) as app:
        book = app.books.add() #创建一个工作簿
        sheet = book.sheets.add() #创建sheet表
        sheet.range('A1').value = '直接写入单元格数据'
        book.save('H://xlwings.xlsx')  #保存文件

#writeExcel()

def writeExcle2():
    book = xw.Book()
    sheet = book.sheets[0]
    sheet.range('A1').value = '直接写'
    book.save('H://xlwings.xlsx')  #保存文件
    book.close()

#writeExcle2()


xlwings的app激活;

def getApp():
    ''''''    
    app=xw.App()
    pid = app.pid
    # 就是这个App的PID
    app1=xw.App()
    pid1 = app1.pid
    print(pid,pid1) 
    #wps没有这些
    #apps = xw.apps
    #print(apps.count) #查看app数量
    #keys = apps.keys()
    #print(keys) #查看app的pid值
    #app.activate() #激活当前app






版权声明:本文为原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
关注微信公众号:"cq_xifan";

评论

收藏

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

Powered By 重庆饭哥 © 2014-2022 教学资源分享站 渝ICP备20005643号-1

相信有一天,理想主义终将所向披靡.

Design by © 2021 XIFAN. Powered by 重庆饭哥

站点声明: 本站转载作品版权归原作者及来源网站所有,原创内容作品版权归作者所有,任何内容转载、商业用途等均须联系原作者并注明来源。

友情链接: 官方网站 饭哥在线工具 饭哥导航 在线运行 博客交流社区 重庆艺术工程职业学院