翼度科技»论坛 编程开发 python 查看内容

python使用OpenPyXl库对Excel进行操作

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
python使用OpenPyXl库对Excel进行操作

参考:知乎文章 / OpenPyXL教程 / 博客园

目录

1. 基本概念

在OpenPyXl中的基本改变跟Excel文件中是完全一致的。
workbooksheetcell工作表工作簿单元格相当于是一个Excel文件每个文件都都可以包含多个表单每个可以填写数据的小格就是单元格2. 判断文件是否存在

判断文件是否存在的方法并没有用到OpenPyXl库,但是在实际场景中比较容易遇见,所以我也就补充在了这里。
例如,有时判断该文件是否存在,如果存在就在文件中添加新行进行数据写入,如果不存在就先创建一个Excel文件,再进行数据写入。
  1. file_name = 'test.xlsx'
  2. if os.path.exists(file_name):
  3.     print("文件存在")
  4. else:
  5.     print("文件不存在")
复制代码
3. 创建和打开Excel文件

3.1. 创建Excel文件
  1. from openpyxl import Workbook
  2. import os
  3. file_name = 'test.xlsx'
  4. wb = Workbook() # 创建一个workbook对象
  5. ws = wb.active # 创建workbook会将第一个sheet激活,通过 wb.active获取引用
  6. wb.save(file_name)
复制代码
3.2. 打开已有的Excel文件
  1. from openpyxl import load_workbook
  2. import os
  3. file_name = 'test.xlsx'
  4. wb = load_workbook(file_name) # 无非是调用的函数存在区别
  5. ws = wb.active
  6. wb.save(file_name)
复制代码
4. 储存数据

我感觉这部分内容并不足以作为一个单独的标题,但是我用到了,所以单独把它拎出来写了一下。
  1. ws['A1'] = 123.11 # 调整对应单元格的内容
  2. ws.append([1, 2, 3]) # 在Excel表中添加新行
复制代码
5. sheet操作

通过一段代码来展示sheet操作相关的功能:

  • 创建sheet
  • 修改sheet名称
  • 设置sheet标签背景色
  • 查看所有sheet的名称
  • 获取sheet
  • 复制sheet
  • 删除sheet
  1. from openpyxl import load_workbook
  2. import os
  3. file_name = 'test.xlsx'
  4. wb = load_workbook(file_name)
  5. ws1 = wb.create_sheet("sheet") # 创建sheet,默认插在后面
  6. ws1.title = "新表单"  # 设置sheet标题
  7. ws2 = wb.create_sheet("mysheet", 0) # 创建一个sheet,插入到最前面
  8. ws2.sheet_properties.tabColor = "1072BA" # 设置sheet标签背景色
  9. ws3 = wb.copy_worksheet(ws2) # ws3为ws2的复制
  10. print(wb.sheetnames) # 查看该文件所有的sheet名称
  11. ws4 = wb.get_sheet_by_name(u"新表单") # 根据名称获取sheet
  12. wb.remove(ws1) # 删除sheet ws1
复制代码
6. cell操作


  • 单独操作
  • 批量操作
  • 合并单元格
  1. from openpyxl import load_workbook
  2. import os
  3. file_name = 'test.xlsx'
  4. wb = load_workbook(file_name)
  5. ws = wb.active
  6. c = ws['A1'] # 通过单元格名称访问
  7. d = ws.cell(row=4, column=2, value=10) # 通过行列坐标访问
  8. # 操作单列
  9. for cell in ws["A"]:
  10.     print(cell.value)
  11. # 操作单行  
  12. for cell in ws["1"]:
  13.     print(cell.value)
  14. # 操作多列
  15. for column in ws['A:C']:
  16.     for cell in column:
  17.         print(cell.value)
  18. # 操作多行
  19. for row in ws['1:3']:
  20.     for cell in row:
  21.         print(cell.value)
  22. # 指定范围
  23. for row in ws['A1:C3']:
  24.     for cell in row:
  25.         print(cell.value)
  26. # 所有行
  27. for row in ws.iter_rows():
  28.     for cell in row:
  29.         print(cell.value)
  30. # 所有列
  31. for column in ws.iter_cols():
  32.     for cell in column:
  33.         print(cell.value)
  34. # 合并
  35. ws.merge_cells('A2:D2')
  36. # 解除合并
  37. ws.unmerge_cells('A2:D2')
  38. # 合并
  39. ws.merge_cells(start_row=2,start_column=1,end_row=2,end_column=4)
  40. # 解除合并
  41. ws.unmerge_cells(start_row=2,start_column=1,end_row=2,end_column=4)
复制代码
来源:https://www.cnblogs.com/HoNorthNorth/p/17965359
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具