python使用OpenPyXl库对Excel进行操作
python使用OpenPyXl库对Excel进行操作参考:知乎文章 / OpenPyXL教程 / 博客园
目录
[*]python使用OpenPyXl库对Excel进行操作
[*]1. 基本概念
[*]2. 判断文件是否存在
[*]3. 创建和打开Excel文件
[*]3.1. 创建Excel文件
[*]3.2. 打开已有的Excel文件
[*]4. 储存数据
[*]5. sheet操作
[*]6. cell操作
1. 基本概念
在OpenPyXl中的基本改变跟Excel文件中是完全一致的。
workbooksheetcell工作表工作簿单元格相当于是一个Excel文件每个文件都都可以包含多个表单每个可以填写数据的小格就是单元格2. 判断文件是否存在
判断文件是否存在的方法并没有用到OpenPyXl库,但是在实际场景中比较容易遇见,所以我也就补充在了这里。
例如,有时判断该文件是否存在,如果存在就在文件中添加新行进行数据写入,如果不存在就先创建一个Excel文件,再进行数据写入。
file_name = 'test.xlsx'
if os.path.exists(file_name):
print("文件存在")
else:
print("文件不存在")3. 创建和打开Excel文件
3.1. 创建Excel文件
from openpyxl import Workbook
import os
file_name = 'test.xlsx'
wb = Workbook() # 创建一个workbook对象
ws = wb.active # 创建workbook会将第一个sheet激活,通过 wb.active获取引用
wb.save(file_name)3.2. 打开已有的Excel文件
from openpyxl import load_workbook
import os
file_name = 'test.xlsx'
wb = load_workbook(file_name) # 无非是调用的函数存在区别
ws = wb.active
wb.save(file_name)4. 储存数据
我感觉这部分内容并不足以作为一个单独的标题,但是我用到了,所以单独把它拎出来写了一下。
ws['A1'] = 123.11 # 调整对应单元格的内容
ws.append() # 在Excel表中添加新行5. sheet操作
通过一段代码来展示sheet操作相关的功能:
[*]创建sheet
[*]修改sheet名称
[*]设置sheet标签背景色
[*]查看所有sheet的名称
[*]获取sheet
[*]复制sheet
[*]删除sheet
from openpyxl import load_workbook
import os
file_name = 'test.xlsx'
wb = load_workbook(file_name)
ws1 = wb.create_sheet("sheet") # 创建sheet,默认插在后面
ws1.title = "新表单"# 设置sheet标题
ws2 = wb.create_sheet("mysheet", 0) # 创建一个sheet,插入到最前面
ws2.sheet_properties.tabColor = "1072BA" # 设置sheet标签背景色
ws3 = wb.copy_worksheet(ws2) # ws3为ws2的复制
print(wb.sheetnames) # 查看该文件所有的sheet名称
ws4 = wb.get_sheet_by_name(u"新表单") # 根据名称获取sheet
wb.remove(ws1) # 删除sheet ws16. cell操作
[*]单独操作
[*]批量操作
[*]合并单元格
from openpyxl import load_workbook
import os
file_name = 'test.xlsx'
wb = load_workbook(file_name)
ws = wb.active
c = ws['A1'] # 通过单元格名称访问
d = ws.cell(row=4, column=2, value=10) # 通过行列坐标访问
# 操作单列
for cell in ws["A"]:
print(cell.value)
# 操作单行
for cell in ws["1"]:
print(cell.value)
# 操作多列
for column in ws['A:C']:
for cell in column:
print(cell.value)
# 操作多行
for row in ws['1:3']:
for cell in row:
print(cell.value)
# 指定范围
for row in ws['A1:C3']:
for cell in row:
print(cell.value)
# 所有行
for row in ws.iter_rows():
for cell in row:
print(cell.value)
# 所有列
for column in ws.iter_cols():
for cell in column:
print(cell.value)
# 合并
ws.merge_cells('A2:D2')
# 解除合并
ws.unmerge_cells('A2:D2')
# 合并
ws.merge_cells(start_row=2,start_column=1,end_row=2,end_column=4)
# 解除合并
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】 我们会及时删除侵权内容,谢谢合作!
页:
[1]