怎样用python处理Excel表格呢

不要方,雷哥教你。

一、理解 python与Excel表格

Excel 是 Windows 环境下流行的、强大的电子表格应用。openpyxl 模块让 Python 程序能读取和修改 Excel电子表格文件
(1)excel文档中的基本属性定义:

  • 工作薄(workbook)
  • 工作表(sheet)
  • 活动表(active sheet)
  • 行(row): 1,2,3,4,5,6………
  • 列(column): A,B,C,D………
  • 单元格(cell): B1, C1

(2)python对于Excel表格操作的模块有很多种,这里选用openpyxl模块,但是openpyxl模块时需要进行安装的(因为openpyxl是第三方库)
非常简单,在命令行中输入一下命令即可下载安装:

pip install openpyxl

我们用以下表格为例子:

操作步骤:
(1)打开一个excel文档

import openpyxl
# 打开一个excel文档, class 'openpyxl.workbook.workbook.Workbook'实例化出来的对象
wb = openpyxl.load_workbook('Book.xlsx')
print(wb, type(wb))
# 获取当前工作薄里所有的工作表, 和正在使用的表;
print(wb.sheetnames)
print(wb.active)

结果(输出的是一个对象):

(2)选择要操作的工作表

# 选择要操作的工作表, 返回工作表对象
sheet = wb['Sheet1']
# 获取工作表的名称
print(sheet.title)

结果:

(3)指定行指定列的单元格信息

# 返回指定行指定列的单元格信息
print(sheet.cell(row=1, column=2).value)
cell = sheet['B1']
print(cell)
print(cell.row, cell.column, cell.value)

结果:

(4)获取工作表中行和列的最大值

# 获取工作表中行和列的最大值
print(sheet.max_column)
print(sheet.max_row)
sheet.title = '学生信息'
print(sheet.title)

结果:

(5)访问单元格的所有信息

# 访问单元格的所有信息
print(sheet.rows)  # 返回一个生成器, 包含文件的每一行内容, 可以通过便利访问.
# 循环遍历每一行
for row in sheet.rows:# 循环遍历每一个单元格for cell in row:# 获取单元格的内容print(cell.value, end=',')print()

结果:

(6)保存修改信息

# 保存修改信息
wb.save(filename='Boom.xlsx')

结果:

总结一下:
操作Excel表格可详细的概括如下:
1.导入 openpyxl 模块。
2.调用 openpyxl.load_workbook()函数。
3.取得 Workbook 对象。
4.调用 wb.sheetnames和 wb.active 获取工作簿详细信息。
5.取得 Worksheet 对象。
6.使用索引或工作表的 cell()方法,带上 row 和 column 关键字参数。
7.取得 Cell 对象。
8.读取 Cell 对象的 value 属性

二、 Excel简单实例

需求:

  • 定义一个函数, readwb(wbname, sheetname=None)
  • 如果用户指定sheetname就打开用户指定的工作表, 如果没有指定, 打开active sheet;
  • 根据商品的价格进行排序(由小到大), 保存到文件中;商品名称:商品价格:商品数量
  • 所有信息, 并将其保存到数据库中
    看代码:
import os
import openpyxldef readwb(wbname, sheetname=None):# 打开工作薄wb = openpyxl.load_workbook(wbname)# 获取要操作的工作表if not sheetname:sheet = wb.activeelse:sheet = wb[sheetname]# 获取商品信息保存到列表中#[ ['name', price, count]all_info = []for row in sheet.rows:child = [cell.value for cell in row]all_info.append(child)return sorted(all_info, key=lambda item: item[1])def save_to_excel(data, wbname, sheetname='sheet1'):"""将信息保存到excel表中;[[' BOOK', 50, 3], ['APPLE', 100, 1], ['BANANA', 200, 0.5]]"""print("写入Excel[%s]中......." %(wbname))# 打开excel表, 如果文件不存在, 自己实例化一个WorkBook对象wb = openpyxl.Workbook()# 修改当前工作表的名称sheet = wb.active# 修改工作表的名称sheet.title = sheetnamefor row, item in enumerate(data):  # 0 [' BOOK', 50, 3]for column, cellValue in enumerate(item): #  0 ' BOOK'sheet.cell(row=row+1, column=column+1, value=cellValue)# ** 往单元格写入内容# sheet.cell['B1'].value = "value"# sheet.cell(row=1, column=2, value="value")# 保存写入的信息wb.save(filename=wbname)print("写入成功!")data = readwb(wbname='Book1.xlsx')
save_to_excel(data, wbname='Book2.xlsx', sheetname="排序商品信息")

结果:

三、更改表格的内容

每一行代表一次单独的销售。列分别是销售产品的类型(A)、产品每磅的价格
(B)、销售的磅数©,以及这次销售的总收入。TOTAL 列设置为 Excel 公式,将每磅的成本乘以销售的磅数,
并将结果取整到分。有了这个公式,如果列 B 或 C 发生变化,TOTAL 列中的单元格将自动更新.

需要更新的价格如下:
Celery 1.19
Garlic 3.07
Lemon 1.27

现在假设 Garlic、 Celery 和 Lemons 的价格输入的不正确。这让你面对一项无聊
的任务:遍历这个电子表格中的几千行,更新所有 garlic、celery 和 lemon 行中每磅
的价格。你不能简单地对价格查找替换,因为可能有其他的产品价格一样,你不希
望错误地“更正”。对于几千行数据,手工操作可能要几小时
下载文件 : produceSales.xlsx
原文件打开是这样的:

解决步骤:
1> 首先需要打开电子表格文件
2> 然后查找每一行内容,检查列 A (即列表的第一个索引)的值是不是 Celery、Garlic 或 Lemon
3> 如果是,更新列 B 中的价格(即列表第二个索引)
4> 最后将该表格保存为一个新的文件

看代码:

import os
import openpyxldef readwb(wbname, sheetname=None):# 打开工作薄wb = openpyxl.load_workbook(wbname)# 获取要操作的工作表if not sheetname:sheet = wb.activeelse:sheet = wb[sheetname]# 获取商品信息保存到列表中all_info = []for row in sheet.rows:child = [cell.value for cell in row]all_info.append(child)if child[0] == 'Celery':child[1] = 1.19if child[0] == 'Garlic':child[1] = 3.07if child[0] == 'Lemon':child[1] = 1.27return all_infodef save_to_excel(data, wbname, sheetname='sheet1'):"""将信息保存到excel表中;"""print("写入Excel[%s]中......." % (wbname))# 打开excel表, 如果文件不存在, 自己实例化一个WorkBook对象wb = openpyxl.Workbook()# 修改当前工作表的名称sheet = wb.active# 修改工作表的名称sheet.title = sheetnamefor row, item in enumerate(data):  # 0 [' BOOK', 50, 3]for column, cellValue in enumerate(item):  # 0 ' BOOK'sheet.cell(row=row + 1, column=column + 1, value=cellValue)# ** 往单元格写入内容# sheet.cell['B1'].value = "value"# sheet.cell(row=1, column=2, value="value")# 保存写入的信息wb.save(filename=wbname)print("写入成功!")data = readwb(wbname='/home/kiosk/Desktop/day17/produceSales.xlsx')
save_to_excel(data, wbname='new_Sales.xlsx', sheetname="商品信息")

结果:

此时,写入新数据成功。
新生成的表格如下:

好啦,有关python处理Excel表格的内容就这么多,有不懂的地方可以留言哦,谢谢。

基于python处理Excel表格(自动化办公)相关推荐

  1. python处理Excel实现自动化办公教学(含实战)【一】

    相关文章: python处理Excel实现自动化办公教学(含实战)[一] python处理Excel实现自动化办公教学(含实战)[二] python处理Excel实现自动化办公教学(数据筛选.公式操作 ...

  2. python办公自动化excel_简直出神入化,教你用Python控制Excel实现自动化办公

    1.安装 简直出神入化,教你用Python控制Excel实现自动化办公 2.操作一个简单的Excel文档 操作注释及代码: 简直出神入化,教你用Python控制Excel实现自动化办公 操作完成后,数 ...

  3. python做excel自动化可视化-简直出神入化,教你用Python控制Excel实现自动化办公...

    1.安装 简直出神入化,教你用Python控制Excel实现自动化办公 2.操作一个简单的Excel文档 操作注释及代码: 简直出神入化,教你用Python控制Excel实现自动化办公 操作完成后,数 ...

  4. python excel 自动化-简直出神入化,教你用Python控制Excel实现自动化办公

    1.安装 简直出神入化,教你用Python控制Excel实现自动化办公 2.操作一个简单的Excel文档 操作注释及代码: 简直出神入化,教你用Python控制Excel实现自动化办公 操作完成后,数 ...

  5. python excel 自动化-Python控制Excel实现自动化办公

    这篇文章介绍了Python控制Excel实现自动化办公的方法,主要用到了xlsxwriter库,该库可以很方便的实现操作excel,利用xlsxwriter提供的方法即可使用自动化办公. Python ...

  6. python自动化办公-简直出神入化,教你用Python控制Excel实现自动化办公

    1.安装 简直出神入化,教你用Python控制Excel实现自动化办公 2.操作一个简单的Excel文档 操作注释及代码: 简直出神入化,教你用Python控制Excel实现自动化办公 操作完成后,数 ...

  7. python做excel自动化-Python控制Excel实现自动化办公

    这篇文章介绍了Python控制Excel实现自动化办公的方法,主要用到了xlsxwriter库,该库可以很方便的实现操作excel,利用xlsxwriter提供的方法即可使用自动化办公. Python ...

  8. Python骚操作:Python控制Excel实现自动化办公!

    Python骚操作:Python控制Excel实现自动化办公! 1.安装 Python骚操作:Python控制Excel实现自动化办公! 2.操作一个简单的Excel文档 操作注释及代码: Pytho ...

  9. python处理Excel实现自动化办公教学(数据筛选、公式操作、单元格拆分合并、冻结窗口、图表绘制等)【三】

    相关文章: python处理Excel实现自动化办公教学(含实战)[一] python处理Excel实现自动化办公教学(含实战)[二] python处理Excel实现自动化办公教学(数据筛选.公式操作 ...

  10. Excel表格自动化办公(持续更新)

    Excel表格自动化办公 1.删除单元格内容(从右边开始删除) 2.在单元格后面添加指定内容 3.在单元格前面添加指定内容 4.将两个单元格内容拼接 5.批量替换指定内容 6.单元格内只要固定长度的字 ...

最新文章

  1. js事件触发器fireEvent和dispatchEvent
  2. California Dreaming
  3. java基本语法借阅_课内资源 - 基于Java和MySql实现的光盘借阅管理系统
  4. maven创建多模块项目
  5. P4070 [SDOI2016]生成魔咒
  6. linux 文件的目录,Linux文件及目录管理
  7. 隐式连接时,windows下VS(包括2005、2008等)下配置OpenCV动态库的步骤
  8. spark学习-74-源代码:Endpoint模型介绍(6)-Endpoint的消息的接收
  9. android多个activity共用一个菜单,Android开发之多个Activity跳转(Intent)及菜单用法(menu)...
  10. Docker学习总结(61)——Docker、Docker-Compose、Docker swarm 、 K8s 之间的区别
  11. python 版本控制及django,git的使用
  12. Q122:PBRT-V3,提高Monte Carlo积分计算效率的方法——Russian Roulette和Splitting(13.7章节)
  13. PCA(主成分分析)和FA(因子分析)区别
  14. linux怎么点亮硬盘灯_一种基于Linux系统下测试Expander背板硬盘指示灯的方法及系统与流程...
  15. Altium Designer AD 2019最新封装库下载,原理图库PCB库
  16. rime android汉字,irime输入法安卓下载-iRime输入法 安卓版v3.0-PC6安卓网
  17. Qt配置OpenCV时mingw32-make反复出错的原因
  18. 四种常见的XML解析方式
  19. luogu 5561 [Celeste-B]Mirror Magic 后缀数组+RMQ+multiset
  20. 华为云服务器购买以及使用教程

热门文章

  1. 【机器学习】回归模型评价指标原理与基于sklearn的实现
  2. 一步一步实现windows多台电脑文件共享(局域网)
  3. python-配置文件库ConfigParser介绍
  4. 通过C#生成支付宝收款码 一(官方应用创建)
  5. 零跑汽车上市破发,第四上市为何难获高估值
  6. QQ聊天记录快速备份 v0.9
  7. 量产充电机项目资料 900W 或 1Kw 20V-90V 10A 双管正激 可调电源 充电机 提供 PCB和程序,BOM,磁性器件,散热片规格书等 源文件
  8. 百度飞桨:春节写春联:你写上联,AI写下联
  9. Nginx:vts模块(监控)
  10. 向下扎根,向上生长,探寻华为云AI的“根”力量