一.相关说明:
1、openpyxl(可读写excel表)专门处理Excel2007及以上版本产生的xlsx文件;2007一下的版本为xls结尾的文件,需要使用 xlrd和xlwt库进行操作
2、excel表的文字编码如果是“gb2312” 读取后就会显示乱码,请先转成Unicode
3、workbook: 工作簿,一个excel文件包含多个sheet。
4、sheet:工作表,一个workbook有多个,表名识别,如“sheet1”,“sheet2”等。
5、cell: 单元格,存储数据对象
二.openpyxl的使用方法
1. 新建
import openpyxl # 新建一个空excel,表名为sheet,文件名为test wb = openpyxl.Workbook() # 创建新的excel文件,一个工作簿(workbook)在创建的时候同时至少也新建了一张工作表(worksheet) wb.save('test.xlsx')
2.表操作
注:从此操作往后都使用如下的测试数据
import openpyxl import openpyxl.styles # 打开已有的excel wb = openpyxl.load_workbook("test.xlsx") # ------------------ 表操作 ------------------ # 新建sheet表 wb.create_sheet(index=2, title="sheet3") # 可通过index控制创建的表的位置 # 获取所有表名 sheet_names = wb.sheetnames # 得到工作簿的所有工作表名 结果: ['Sheet1', 'Sheet2', 'Sheet3'] # 根据表名删除sheet表 wb.remove(wb[sheet_names[2]]) # 删除上一步建的第3个工作表 # 根据表名打开sheet表 sheet1 = wb[sheet_names[0]] # 打开第一个 sheet 工作表
3.读取数据
# ------------------ 读取数据 ------------------ # 获取单元格数据 sheet1_max_colum = sheet1.max_column # 获取最大列数 结果:3 # ws = wb.active # 获取当前活动的sheet页 sheet1_max_row = sheet1.max_row # 获取最大行数 结果:10 A1_value = sheet1['A1'].value # 获取单元格A1值 结果:a1 A1_column = sheet1['A1'].column # 获取单元格A1列值 结果: A A1_row = sheet1['A1'].row # 获取单元格A1行号 结果: 1 A1 = sheet1.cell(row=1, column=1).value # 获取第一行第一列的单元格值 结果:a1 # 获取C列的所有数据 list_sheet1_column_C = [] for i in sheet1["C"]: list_sheet1_column_C.append(i.value) # 获取第1行的所有数据 list_sheet1_row_1 = [] for i in sheet1[1]: list_sheet1_row_1.append(i.value) # 读取所有数据 list_sheet1_all = [] for row in sheet1.rows: for cell in row: list_sheet1_all.append(cell.value) # 按行循环获取所有的值,保存在 list_sheet1_all 列表中
4.写入数据
# ------------------ 写入数据 ------------------ sheet1.cell(row=1, column=2, value="B1") # 修改第一行第二列的单元格的值为B1 sheet1["A1"] = "A1" # 直接修改A1单元格的值为A1 sheet1["B11"] = "B11" # 新增B11单元格的值为B11 sheet1.title = "test_sheet" # 修改sheet1的表名为test_sheet
5.表格样式调整
# ------------------ 表格样式调整 ------------------ # 表格样式支持:字体、颜色、模式、边框、数字格式等 # A1单元格 等线24号加粗斜体,字体颜色浅蓝色 sheet1["B11"].font = openpyxl.styles.Font(name="宋体", size=24, italic=True, color="00CCFF", bold=True) # B1单元格 水平上下居中 sheet1["B11"].alignment = openpyxl.styles.Alignment(horizontal="center", vertical="center") # 第一行高度设置为30 sheet1.row_dimensions[1].height = 30 # C列的宽度设置为35 sheet1.column_dimensions["C"].width = 35
6.保存文件
# 保存文件,注意文件打开时文件保存会出错 wb.save("test.xlsx")
补充:下面通过实例代码看下python3 openpyxl基本操作,具体代码如下所示:
#coding:utf-8 import xlrd import xlwt # 读写2007 excel import openpyxl import sys #读取设备sn # def readSN(path): # wb = openpyxl.load_workbook(path) # sheet = wb.active # dict = [] # for i in range(2, sheet.max_row +1): # c = sheet["C" + str(i)].value; # d = sheet["D" + str(i)].value; # # dict.append(d) # #dict.append(d) # #print(c,d) # return dict; # # pass; # print(readSN("./sim/1.xlsx")) def read07Excel(path,path1): wb = openpyxl.load_workbook(path) sheet = wb.active # print(sheet.max_column) # 获取最大列数 # print(sheet.max_row) # 获取最大行数 #print(sheet['B1'].value) wb1 = openpyxl.load_workbook(path1) sheet1 = wb1.active for i in range(2,sheet.max_row): iccid = sheet["B"+str(i)].value; len_iccid = len(iccid) if len_iccid == 20 : sub_iccid = iccid[16:-1] elif len_iccid == 21: sub_iccid = iccid[17:-1] for x in range(1,sheet1.max_row): #print(sheet1["D"+str(x)].value) if sub_iccid+"N" == sheet1["D"+str(x)].value: sheet["O"+str(i)].value = sheet1["C"+str(x)].value; wb.save(filename=path) print(str(sheet1["D"+str(x)].value) + " "+ str(sheet1["C"+str(x)].value) +" "+ str(iccid)) print() pass # 写入数据 # s =sheet["P"+str(i)].value = "dsdaf"; # wb.save(filename=path) # p = sheet["P" + str(i)].value; #print(sub_iccid) # for row in sheet.rows: # for cell in row: # print(cell.value, "\t", end="") # print(cell.column, "\t", end="") # # # print() # sys.exit() # path = "./sim/2.xlsx" # wb = openpyxl.load_workbook(path) # #sheet = wb.sheetnames[0] #获取名称 # sheet = wb.active # 分别返回 #print(sheet['A1'].value) #获取单元格A1值 read07Excel("./sim/2.xlsx","./sim/1.xlsx") # wb=openpyxl.load_workbook('./sim/1.xlsx') #打开excel文件 # print(wb.sheetnames) #获取工作簿所有工作表名
总结
以上所述是小编给大家介绍的python3结合openpyxl库实现excel操作,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月26日
2024年11月26日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]