python技巧分享Excel创建和修改

作者:zzxiaoma 时间:2022-01-09 12:04:59 

openpyxl是一个读写Excel文档的Python库,能够同时读取和修改Excel文档。

openpyxl是一个开源项目,因此在使用之前需要先进行安装:

pip install openpyxl

openxpyxl中有三个不同层次的类,分别是WorkbookWorksheet和Cello。Workbook是对Excel工作簿的抽象,Worksheet是对表格的抽象,Cell是对单元格的抽象。每一个类都包含了若干属性和方法,以便于我们通过这些属性和方法获取表格中的数据。一个Workbook对象代表一个Excel文档,因此在操作一个Excel之前,应该先创建一个Workbook对象。对于创建一个新的Excel文档,直接进行Workbook类调用即可。对于读取一个已有的Excel文档,可以使用openxpyxl模块的load_workbook函数。该函数接受多个参数,但只有filename参数为必传参数。filenmame可以是一个文件名,也可以是一个打开的文件对象。

Workbook对象有很多的属性和方法:

  • 1、active:获取活跃的Worksheet;

  • 2、read_only:是否以read_only模式打开Excel文档;

  • 3、encoding:文档的字符集编码:

  • 4、properties:文档的元数据,如标题,创建者,创建日期等;

  • 5、worksheets:以列表的形式返回所有的Worksheet。

Workbook对象的方法:

  • 1、get_sheet_names:获取所有表格的名称;

  • 2、get_sheet_by_name:通过表格名称获取Worksheet对象;

  • 3、get_active_sheet:获取活跃的表格;

  • 4、remove_sheet:删除一个表格;

  • 5、create_sheet:创建一个空的表格;

  • 6、copy_worksheet:在Workbook内拷贝表格。

常用的Worksheet属性:

  • 1、title:表格的标题;

  • 2、dimensions表格的大小,这里的大小是指有含有数据的表格大小。

  • 3、max_row表格的最大行;

  • 4、min_row表格的最小行;

  • 5、max_column表格的最大列;

  • 6、min_column表格的最小列;

  • 7、rows按行获取单元格(Cell对象);

  • 8、columns按列获取单元格(Cell 对象);

  • 9、freeze_panes冻结窗格;

  • 10、values按行获取表格的(数据);

import openpyxl
wb = openpyxl.load_workbook('book2.xlsx')
print(wb.active)
print(wb.read_only)
print(wb.worksheets)
print(wb.get_sheet_names())
print(wb.get_active_sheet())
sheet = wb.get_sheet_by_name('Sheet1')
print(sheet.max_row)
for row in sheet.values:
    print(*row)

创建和修改excel:

from openpyxl import Workbook
wb = Workbook() #默认创建一个sheet
sheet = wb.active
sheet.title = 'test1'
sheet0 = wb.create_sheet(index=0, title="test0") #又创建一个sheet,并且放到第一位
sheet0['A1'] = '姓名'
sheet0['A2'] = 'ok'
wb.save('abc.xlsx')

如果文件已经存在,会删除文件重新建立。

例子:RECORD这一列值的合计,并写入下最后一行

python技巧分享Excel创建和修改

import openpyxl
wb = openpyxl.load_workbook('test.xlsx') #打开文件
sheet = wb.get_sheet_by_name('Sheet1') #获取第一个sheet
sum = 0.00
for row in range(2,sheet.max_row+1): #从第二行到最后一行
    scores = sheet.cell(row,column=3).value #获取第三列
    sum = sum + scores
sheet.cell(column=3, row=sheet.max_row+1, value=sum) #最后一行赋值
wb.save('test.xlsx')

来源:https://blog.51cto.com/u_3764469/5038928

标签:python,Excel,创建,修改
0
投稿

猜你喜欢

  • python 输出上个月的月末日期实例

    2022-11-30 16:33:11
  • 随感:交互设计两三事

    2009-05-18 13:54:00
  • Django 如何从request中获取前端数据

    2023-06-22 06:52:16
  • 使用模板实现ASP代码与页面分离

    2008-09-12 16:07:00
  • 在Python 字典中一键对应多个值的实例

    2023-07-25 23:45:02
  • python中ImageTk.PhotoImage()不显示图片却不报错问题解决

    2023-08-26 18:12:06
  • ASP 读取MP3文件帧的信息比特率,采样频率,播放时间

    2010-06-04 12:22:00
  • python中redis查看剩余过期时间及用正则通配符批量删除key的方法

    2023-08-02 12:12:27
  • python3字符串操作总结

    2023-08-23 22:31:23
  • Python3.x+pyqtgraph实现数据可视化教程

    2023-09-25 23:24:47
  • 一个很棒的js图片代码

    2009-12-17 18:36:00
  • 详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)

    2023-08-22 18:03:06
  • Oracle In和exists not in和not exists的比较分析

    2009-08-27 10:07:00
  • 浏览器针对单服务器连接数问题

    2008-05-12 22:27:00
  • Tensorflow Summary用法学习笔记

    2023-08-12 15:08:53
  • MacBook m1芯片采用miniforge安装python3.9的方法示例

    2022-03-03 21:18:26
  • IE在DOM操作有表单控件时的bug

    2008-08-21 13:00:00
  • Scripting.Dictionary 对象

    2007-10-13 09:46:00
  • 详解利用Python scipy.signal.filtfilt() 实现信号滤波

    2022-09-23 21:23:03
  • JS重现80后儿时经典拼板(模板)游戏

    2011-09-11 18:36:46
  • asp之家 网络编程 m.aspxhome.com