java解析excel文件_1.3.1 python解析excel格式文件

Excel表格

     Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。

excel文档的基本定义

  • 工作薄(workbook)

  • 工作表(sheet)

  • 活动表(active sheet)

  • 行(row): 1,2,3,4,5,6……..

  • 列(column): A,B,C,D……..

  • 单元格(cell): B1, C1

excel文件格式

43008304318d27f6bf6be478dd4634b8.png

Python安装excel相关模块

     python对于Excel表格操作的模块有很多种,其中

  • xlrd:对xls、xlsx、xlsm文件进行读操作–读操作效率较高,推荐

  • xlwt:对xls文件进行写操作–写操作效率较高,但是不能执行xlsx文件

  • openpyxl:对xlsx、xlsm文件进行读、写操作–xlsx写操作推荐使用

Python不附带Openpyxl,因此您必须安装它。模块的名称是openpyxl,其安装方式有两种,可以直接在dos中使用下面命令:

pip install openpyxl

同样可以直接在pycharm中选择File | Settings | Project: python2020 | Project Interpreter

8b3d5224bc2fa6f3de85e6acd715bd4e.png

操作的excel表格数据是

2e15ca00cfdded763003761a1a7fb4dc.png

 打开一个excel文档

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

执行结果:

9ff3f36ed343312d88d312e88e0d53de.png

选择要操作的工作表

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

执行结果:

c9b16045952063a6aa2bd88c9975b7df.png

指定行指定列的单元格信息

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

执行结果:

f0991cc9b4233cfde85fbe338e8d41b0.png

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

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

执行结果:

ca5505fe57e93f5c432b7364704ea9e7.png

访问单元格的所有信息

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

执行结果:

c19a2d27c57ee7547043adbc1096d7fe.png

保存修改信息

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

将数据写入Excel

工作表相关

导入WorkBook模块

from openpyxl import Workbookwb = Workbook()

这样就新建了一个新的工作表(只是还没被保存)。

若要指定只写模式,可以指定参数write_only=True。一般默认的可写可读模式就可以了。

from openpyxl import Workbookwb = Workbook()print(wb.get_sheet_names()) # 提供一个默认名叫Sheet的表#上述获取sheet的方式已经被sheetnames属性替换了:wb.sheetnames# 直接赋值就可以改工作表的名称wb["Sheet"].title = 'Sheet1'# 新建一个工作表,可以指定索引,适当安排其在工作簿中的位置wb.create_sheet('test', index=1)  # 被安排到第二个工作表,index=0就是第一个位置# 删除某个工作表wb.remove(wb["Sheet1"])  #同样还可以使用del wb["Sheet1"]#保存excelwb.save("wood_test.xlsx")

写入单元格

还可以使用公式

#先获取test工作表的操作对象sheet=wb["test"]#直接给单元格赋值就行sheet['A1'] = 'wood'sheet["B4"]=10sheet["B8"]=20# B10处写入平均值sheet['B10'] = '=AVERAGE(B4:B8)'

执行结果如下:

1ba7ca6d112ad341a616072633eadaf4.png

append函数

可以一次添加多行数据,从第一行空白行开始(下面都是空白行)写入。

# 添加一行row = [11, 12, 13, 14, 15]sheet.append(row)# 添加多行rows = [    ['ID', 'age1', 'age2'],    [2, 40, 30],    [3, 40, 25],    [4, 50, 30],    [5, 30, 10],    [6, 25, 5],    [7, 50, 10],]for value in rows:    sheet.append(value)

执行结果:

0277aea1f86bcc259bd860634d0e7114.png

Excel操作总结

  • 导入 openpyxl 模块。

  • 调用 openpyxl.load_workbook()函数。

  • 取得 Workbook 对象。

  • 调用 wb.sheetnames和 wb.active 获取工作簿详细信息。

  • 取得 Worksheet 对象。

  • 使用索引或工作表的 cell()方法,带上 row 和 column 关键字参数。

  • 取得 Cell 对象。

  • 读取 Cell 对象的 value 属性

了解更多信息关注公众号

cf17d1b6a094746f94400564448004e1.png

45dc1866fd54d57f73037500d18cd46e.png

分享课程立马赚:

55ebf7bd6cf416eede5c186e83d667d9.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值