python与excel结合-python3与Excel的完美结合

1.创建对象

打开或者创建一个Excel需要创建一个Workbook对象

获取一个表则需要先创建一个Workbook对象,然后使用该对象的方法来得到一个Worksheet对象

如果要获取表中的数据,那么得到Worksheet对象以后再从中获取代表单元格的Cell对象

Workbook对象

一个Workbook对象代表一个Excel文档,因此在操作Excel之前,都应该先创建一个Workbook对象。对于创建一个新的Excel文档,直接进行Workbook类的调用即可,对于一个已经存在的Excel文档,可以使用openpyxl模块的load_workbook函数进行读取,该函数包涵多个参数,但只有filename参数为必传参数。filename 是一个文件名,也可以是一个打开的文件对象。

import openpyxl

wb = openpyxl.Workbook('Book1.xlsx')

wb1 = openpyxl.load_workbook('Book2.xlsx')

print(wb)

print(type(wb))

print(wb1)

print(type(wb1))

1

2

3

4

5

6

7

8

2.Workbook对象属性(工作簿操作)

sheetnames:获取工作簿中的表(列表)

active:获取当前活跃的Worksheet

worksheets:以列表的形式返回所有的Worksheet(表格)

read_only:判断是否以read_only模式打开Excel文档

encoding:获取文档的字符集编码

properties:获取文档的元数据,如标题,创建者,创建日期等

import openpyxl

wb = openpyxl.load_workbook('Book2.xlsx')

print(wb.sheetnames)

print(wb.active)

print(wb.worksheets)

print(wb.read_only)

print(wb.encoding)

print(wb.properties) ##运行结果最后三行属于该属性

1

2

3

4

5

6

7

8

9

excel信息

运行结果

3.Worksheet,Cell对象(工作表操作,单元格)

Worksheet:

title:表格的标题

max_row:表格的最大行

min_row:表格的最小行

max_column:表格的最大列

min_column:表格的最小列

rows:按行获取单元格(Cell对象) - 生成器

columns:按列获取单元格(Cell对象) - 生成器

values:按行获取表格的内容(数据) - 生成器

Cell:

row:单元格所在的行

column:单元格坐在的列

value:单元格的值

coordinate:单元格的坐标

import openpyxl

wb = openpyxl.load_workbook('Book2.xlsx')

##选择要操作的工作表, 返回工作表对象

sheet = wb['排序商品信息']

#获取工作表的名称

print(sheet.title)

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

print(sheet.max_column)

print(sheet.max_row)

print(sheet.min_column)

print(sheet.min_row)

##修改表的名称

sheet.title = 'sheet1'

print(sheet.title)

# 返回指定行指定列的单元格信息

print(sheet.cell(row=1, column=2).value)

cell = sheet['B1']

print(cell)

print(cell.row, cell.column, cell.value,cell.coordinate)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

运行前excel信息

4.访问单元格的所有信息

import openpyxl

wb = openpyxl.load_workbook('Book2.xlsx')

##选择要操作的工作表, 返回工作表对象

sheet = wb['排序商品信息']

for row in sheet.rows:

# 循环遍历每一个单元格

for cell in row:

# 获取单元格的内容

print(cell.value, end=',')

print()

1

2

3

4

5

6

7

8

9

10

11

import openpyxl

wb = openpyxl.load_workbook('Book2.xlsx')

##选择要操作的工作表, 返回工作表对象

sheet = wb['排序商品信息']

for row in sheet.values:

print(*row)

1

2

3

4

5

6

7

5.应用案例

需求:

商品名称 商品价格 商品数量

- 定义一个函数, readwb(wbname, sheetname=None)

- 如果用户指定sheetname就打开用户指定的工作表, 如果没有指定, 打开active sheet;

- 根据商品的价格进行排序(由小到大), 保存到文件中;商品名称:商品价格:商品数量

- 所有信息, 并将其保存到数据库中;

import os

import openpyxl

def readwb(wbname, sheetname=None):

# 打开工作薄

wb = openpyxl.load_workbook(wbname)

# 获取要操作的工作表

if not sheetname:

sheet = wb.active

else:

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 = sheetname

for 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="排序商品信息")

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

原excel信息

新excel信息

————————————————

版权声明:本文为CSDN博主「forever_wen」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/forever_wen/article/details/82555545

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PythonExcel可以通过使用一些库和工具实现完美结合。其中,plotly是一个Python的可视化库,可以用来绘制交互式图表,类似于Excel中的图表功能。通过plotly,你可以在图表上进行一些简单的操作,比如缩放、旋转、选择数据等。\[1\]\[2\]另外,pandas是Python中一个非常流行的数据分析库,它提供了丰富的数据处理和分析功能,可以用来处理Excel中的数据。你可以使用pandas来读取、处理和分析Excel文件中的数据,实现类似于Excel中的vlookup函数、数据透视表等常用功能。\[3\]因此,通过使用这些库和工具,你可以在Python中实现类似于Excel的数据分析和可视化功能,实现PythonExcel完美结合。 #### 引用[.reference_title] - *1* *3* [PythonExcel完美结合:常用操作汇总(案例详析)](https://blog.csdn.net/libaiup/article/details/127706126)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [PythonExcel完美结合:常用操作汇总(案例详析)](https://blog.csdn.net/qiqi1220/article/details/125768485)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值