图片设计网站有哪些,手机网站设计案例,外贸网站小语种,开发软件app公司文章目录 前提读取已有excel创建一个excel工作簿对象创建excel工作簿中的工作表获取工作表第一种#xff1a;.active 方法第二种#xff1a;通过工作表名获取指定工作表第三种#xff1a;.get_sheet_name() 修改工作表的名称数据操作写入数据按单元格写入通过指… 文章目录 前提读取已有excel创建一个excel工作簿对象创建excel工作簿中的工作表获取工作表第一种.active 方法第二种通过工作表名获取指定工作表第三种.get_sheet_name() 修改工作表的名称数据操作写入数据按单元格写入通过指定坐标赋值方式将数据写入单元格。按行写入数据 读取数据获取工作表中已有全部数据获取指定范围内的值 一个示例 前提
使用前需要先安装下这个模块
pip install openpyxl读取已有excel
情况2读取本地已存在的excel用来后续进行读写等处理。
方法load_workbook(已有excel文件路径)如果路径中excel文件不存在将会报错。
from openpyxl import load_workbook
# 读取已存在的excel工作薄
wb load_workbook(excel_test.xlsx)创建一个excel工作簿对象
进行读写、修改等操作前需要创建一个可供操作的excel工作簿对象。
使用Workbook类新建一个excel工作簿对象用来后续进行读写等处理。 from openpyxl import Workbook
# 新建一个excel工作簿对象
wb Workbook()
# 保存新建的excel工作簿
wb.save(excel_test.xlsx)1该类在新建excel工作簿的同时也会新建了一个工作表默认名为Sheet。2.save保存路径方法对excel进行保存写入或修改excel后都需要保存。3如果当前保存路径下已经有一个同名excel文件不会提示且原文件被覆盖。
创建excel工作簿中的工作表
openpyxl提供了可自定义工作表的方法。
工作表即是常见说法的【Sheet】。
创建自定义名称的工作表语法如下
Workbook.create_sheet(title,index)title工作表的名称可省略系统自动命名Sheet, Sheet1, Sheet2, ...。
index工作表的位置可省略默认插在工作表末尾0表示插在第一个。# 自定义工作表
ws1 wb.create_sheet(test)
ws2 wb.create_sheet()
# 保存
wb.save(excel_test.xlsx)获取工作表
进行读写、修改数据等操作时首先需要获取工作簿中的工作表即Sheet作为操作对象。
3种获取工作表的方法如下
第一种.active 方法
默认获取工作簿的第一张工作表
# 获取第一张工作表
ws wb.active第二种通过工作表名获取指定工作表
ws wb[test]
print(ws)第三种.get_sheet_name()
通过工作表名使用方法.get_sheet_name(工作表名)
ws3 wb.get_sheet_by_name(Sheet1)
print(ws3)
修改工作表的名称
使用.title属性修改工作表名称。
修改工作表名称前要先指定需要修改的工作表
# 获取要修改的工作表
ws1 wb[text]
ws2 wb[Sheet1]
# 修改工作表的名称
ws1.title 测试
ws2.title 测试1
# 保存
wb.save(excel_test.xlsx)数据操作
以下是openpyxl最常用的【读写】操作。
在进行【读写】操作时首先需要创建一个excel工作簿对象然后对该对象中的工作表sheet进行操作。
以下将以读取本地已存在的excel_test.xlsx作为工作簿对象wb进行举例。
from openpyxl import load_workbook
# 读取已存在的excel工作薄
wb load_workbook(excel_test.xlsx)写入数据
按单元格写入
直接赋值法
# 选择要写入的工作表sheet1 wb[测试]
sheet1[A2] 姓名
# 保存
wb.save(excel_test.xlsx)通过指定坐标赋值方式将数据写入单元格。
方法.cell(row,column,value)
row 行 column 列数value需要写入的数据。
# 选择要写入的工作表
sheet1 wb[测试]
# 写入数据
sheet1.cell(row3, column4, value一位代码)
# 保存
wb.save(excel_test.xlsx)按行写入数据
.append(data)方法传一个单层列表格式数据。
# 选择要写入的工作表
sheet1 wb[测试1]
# 写入一行数据
data1 [1, 2, 3, 4]
sheet1.append(data1)
# 保存
wb.save(excel_test.xlsx)注append()只能接受单层列表格式数据多层列表需要循环写入
读取数据
获取工作表中已有全部数据
.values获取目标工作表中已有全部数据返回值是一个对象需要进行转换。
# 选择需要获取的工作表
sheet1 wb[测试1]
# 获取所有值
print(返回值, sheet1.values)
print(返回值转换后, list(sheet1.values))还可以用循环来写如下
# 选择需要获取的工作表
sheet1 wb[测试1]
# 循环获取
for row in sheet1.values:print(row)获取指定范围内的值
获取指定单元格的值
# 选择需要获取的工作表
sheet1 wb[测试1]
# 指定单位格的值
cell1 sheet1[A1]
print(cell1.value)获取指定范围内单元格的值
# 选择需要获取的工作表
sheet1 wb[测试1]
# 指定坐标范围
cells sheet1[A1:B2] # 还可以写成[A1:B2]
print(指定范围, cells)
# 获取单元格的值
for row in cells:for cell in row:print(cell.value)一个示例
读取一个文件中一列数据然后进行转置保存为另外一个文件。 目的实际是为了来处理网络配置文件的。 from openpyxl import load_workbookwb_obj load_workbook(F:\\Desktop\\pyprj\\testorg.xlsx)
ws wb_obj.active# 转置
delta 2 #转置开始位置偏移量
this_row 1 #转置行下标
this_col 1 #转置列下标
for row_num in range(1, ws.max_row 1):this_col this_col 1 #列下标加1cell_value ws.cell(rowrow_num,column1).value #要转置的值if cell_value.strip() #:this_row this_row 1 #行下标加1this_col 0 #列下标重新开始ws.cell(rowthis_row, columnthis_coldelta).value cell_valuewb_obj.save(99乘法表.xlsx)
wb_obj.close()原始表 转置后