首页 > 编程 > Python > 正文

python3结合openpyxl库实现excel操作的实例代码

2020-01-04 14:33:17
字体:
来源:转载
供稿:网友

一.相关说明:

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,文件名为testwb = openpyxl.Workbook() # 创建新的excel文件,一个工作簿(workbook)在创建的时候同时至少也新建了一张工作表(worksheet)wb.save('test.xlsx')

2.表操作

注:从此操作往后都使用如下的测试数据

import openpyxlimport openpyxl.styles# 打开已有的excelwb = openpyxl.load_workbook("test.xlsx")# ------------------ 表操作 ------------------# 新建sheet表wb.create_sheet(index=2, style="margin: 0px; padding: 0px; outline: none; line-height: 25.2px; font-size: 14px; width: 660px; overflow: hidden; clear: both; font-family: tahoma, arial, "Microsoft YaHei";">	
# ------------------ 读取数据 ------------------# 获取单元格数据sheet1_max_colum = sheet1.max_column # 获取最大列数 结果:3# ws = wb.active # 获取当前活动的sheet页sheet1_max_row = sheet1.max_row # 获取最大行数 结果:10A1_value = sheet1['A1'].value # 获取单元格A1值 结果:a1A1_column = sheet1['A1'].column # 获取单元格A1列值 结果: AA1_row = sheet1['A1'].row  # 获取单元格A1行号 结果: 1A1 = 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") # 修改第一行第二列的单元格的值为B1sheet1["A1"] = "A1" # 直接修改A1单元格的值为A1sheet1["B11"] = "B11" # 新增B11单元格的值为B11sheet1.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")# 第一行高度设置为30sheet1.row_dimensions[1].height = 30# C列的宽度设置为35sheet1.column_dimensions["C"].width = 35

6.保存文件

# 保存文件,注意文件打开时文件保存会出错wb.save("test.xlsx")

补充:下面通过实例代码看下python3 openpyxl基本操作,具体代码如下所示:

#coding:utf-8import xlrdimport xlwt# 读写2007 excelimport openpyxlimport 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操作,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对VEVB武林网网站的支持!


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表