九、Python (openpyxl)操作excel写支持xlsx格式(二)

合集下载

python使用openpyxl库读写Excel表格的方法(增删改查操作)

python使用openpyxl库读写Excel表格的方法(增删改查操作)

python使⽤openpyxl库读写Excel表格的⽅法(增删改查操作)⽬录⼀、前⾔⼆、安装openpyxl三、openpyxl的使⽤四、结束语⼀、前⾔嗨,⼤家好,我是新发。

最近需要做个⼩⼯具,可以通过python来读写Excel,实现增删改查操作。

以前⽤的是xlrd和xlwt这两个python库,今天我要讲的是openpyxl库,我觉得openpyxl⽐xlrd和xlwt更强⼤更好⽤,话不多说,开始吧。

⼆、安装openpyxl可以直接通过命令⾏安装pip install openpyxl不过如果你下载了openpyxl,因为openpyxl还依赖了et_xmlfile库,所以你还得下载个et_xmlfile。

如果是⽤命令⾏pip install openpyxl,则会⾃动下载依赖。

安装完毕后,在python中执⾏import openpyxl如果没有报错,则说明安装成功了。

三、openpyxl的使⽤1、创建Excel⽂件演⽰代码:import openpyxlbook = openpyxl.Workbook()book.save(u'我的表格.xlsx')运⾏效果如下,⽣成了⼀个excel表格。

2、加载已存在的Excel⽂件上⾯已经创建了⼀个表格,我们可以直接加载它。

演⽰代码:import openpyxlbook = openpyxl.load_workbook(u'我的表格.xlsx')# ...book.close()3、创建sheet演⽰代码:import openpyxlbook = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book.create_sheet('我的Sheet')book.save(u'我的表格.xlsx')book.close()运⾏效果如下:4、判断某个sheet是否存在演⽰代码:import openpyxlbook = openpyxl.load_workbook(u'我的表格.xlsx')if None != book[u'我的Sheet']:print('我的Sheet 存在')book.close()运⾏结果:我的Sheet 存在5、遍历所有Sheet的名称演⽰代码:import openpyxlbook = openpyxl.load_workbook(u'我的表格.xlsx')for sheet_name in book.sheetnames:print(sheet_name)book.close()运⾏结果:Sheet我的Sheet6、写⼊单元格演⽰代码:import openpyxlbook = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book['Sheet']sheet.cell(1,1).value = 'name'sheet.cell(2,1).value = '姓名'sheet.cell(3,1).value = '林新发'book.save(u'我的表格.xlsx')book.close()运⾏效果7、获取单元格的各个属性值为了演⽰,我在我名字那⾥加个批注:演⽰代码:import openpyxlbook = openpyxl.load_workbook(u'我的表格.xlsx') sheet = book['Sheet']cell = sheet.cell(3,1)# 获取单元格的值print('value:%s'%cell.value)# 获取⾏号、列号print('row: %d, col: %d'%(cell.row, cell.column)) # 获取列名print('column_letter: %s'%cell.column_letter)# 单元格的坐标print('coordinate: %s'%cell.coordinate)# 单元格数据格式,n: 数字,s:字符串,d: ⽇期print('data_type: %s'%cell.data_type)# 单元格编码格式print('encoding: %s'%cell.encoding)# 单元格样式print('style: %s'%cell.style)# 单元格批注print('comment: %s'%ment)book.close()运⾏结果:value:林新发row: 3, col: 1column_letter: Acoordinate: A3data_type: sencoding: utf-8style: 常规comment: Comment: linxinfa:多才多艺 by linxinfa8、遍历单元格为了演⽰,我加多⼀写数据:⼀⾏⼀⾏遍历,演⽰代码:import openpyxlbook = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book['Sheet']# ⼀⾏⼀⾏遍历for one_row in sheet.rows:for cell in one_row:print(cell, cell.value)book.close()运⾏结果:<Cell 'Sheet'.A1> name<Cell 'Sheet'.B1> profession<Cell 'Sheet'.C1> hobby<Cell 'Sheet'.A2> 姓名<Cell 'Sheet'.B2> 职业<Cell 'Sheet'.C2> 爱好<Cell 'Sheet'.A3> 林新发<Cell 'Sheet'.B3> Unity3D游戏开发⼯程师<Cell 'Sheet'.C3> 吉他、钢琴、画画、猫猫、写博客⼀列⼀列遍历,演⽰代码:import openpyxlbook = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book['Sheet']# ⼀列⼀列遍历for one_col in sheet.columns:for cell in one_col:print(cell, cell.value)book.close()运⾏结果:<Cell 'Sheet'.A1> name<Cell 'Sheet'.A2> 姓名<Cell 'Sheet'.A3> 林新发<Cell 'Sheet'.B1> profession<Cell 'Sheet'.B2> 职业<Cell 'Sheet'.B3> Unity3D游戏开发⼯程师<Cell 'Sheet'.C1> hobby<Cell 'Sheet'.C2> 爱好<Cell 'Sheet'.C3> 吉他、钢琴、画画、猫猫、写博客9、最⼤⾏最⼤列为了演⽰,再加点数据。

python用openpyxl操作excel

python用openpyxl操作excel

python⽤openpyxl操作excelpython操作excel⽅法1)⾃⾝有Win32 COM操作office但讲不清楚,可能不⽀持夸平台,linux是否能⽤不清楚,其他有专业处理模块,如下2)xlrd:(读excel)表,xlrd读⼤表效率⾼于openpyxl3)xlwt:(写excel)表,xlrd和xlwt对版本上兼容不太好,很多新版excel有问题。

新版excel处理:openpyxl(可读写excel表)专门处理Excel2007及以上版本产⽣的xlsx⽂件,xls和xlsx之间转换容易注意:如果⽂字编码是“gb2312” 读取后就会显⽰乱码,请先转成Unicode安装openpyxl1)下载openpyxl模块:https:///pypi/openpyxl2)解压到指定⽂件⽬录:tar -xzvf openpyxl.tar.gz3)进⼊⽬录,找到setup.py⽂件,执⾏命令:python setup.py install如果报错No module named setuptools 就使⽤命令“easy_install openpyxl”,easy_install for win32,会⾃动安装setuptools。

这⾥注意,如果不能⾃动安装,基本上python的模块都通过命令 python 模块名.py install 来安装,如果setuptools模块没有,直接去官⽹下载,然后前⾯命令安装就可以了4)处理图⽚还需要安装pillow(PIL)To be able to include images (jpeg, png, bmp,...) into an openpyxl file, you will also need the “pillow” library that can be installed with:pip install pillowpthon学习资料python 学习⼩组/group/show/368/page/4官⽹:https:///pypi/openpyxlhttp://openpyxl.readthedocs.io/en/default/good:/suofiya2008/article/details/6284208/zzukun/article/details/49946147/topics/0/501/501962.htmlopenpyxl的使⽤openpyxl定义多种数据格式最重要的三种:NULL空值:对应于python中的None,表⽰这个cell⾥⾯没有数据。

python使用openpyxl来写数据到excel表格

python使用openpyxl来写数据到excel表格

python使⽤openpyxl来写数据到excel表格使⽤openpyxl写execl确实很⽅便。

我先介绍⽤到的相关模块与函数Workbook:⼯作簿模块,在内存创建⼀个⼯作簿。

ExcelWriter:使⽤它向exel中写数据。

get_column_letter:给⼀个数字得到⼀个列名,如A,B,C模块安装:pip install openpyxl -i https:///simple 数据写⼊到EXCEL表格#!/usr/bin/env python# _*_ coding:utf-8 _*_from openpyxl.workbook import Workbookfrom openpyxl.writer.excel import ExcelWriterdata = [['序号', '组号', '申报单位', '姓名', '准考号', '考试分数(卷⾯分)'], ['1', '1', '新民采油⼚', '刘铁', '2012051224', '67.834'], ['2', '1', '吉林油⽥总医院', '吕册', '2012120214', '66.776'], ['3', '1', '吉林油⽥总医院', '王彦苏', '2012120718', '66.683'], ['4', '1', '农业开发公司', '刘化峰', '2012060120', '66.664'], ['5', '1', '油区教育处', '沙丽珊', '2012020817', '66.657'], ['6', '1', '油区教育处', '王志会', '2012020914', '66.545'], ['7', '1', '扶余采油⼚', '姜波', '2012041210', '66.355'], ['8', '2', '红岗采油⼚', '王昕', '2012021226', '66.3'], ['9', '2', '通信公司', '彭莉', '2012121014', '66.17'], ['10', '2', '前郭矿区', '⽶云龙', '2012070121', '65.313'], ['11', '2', '油区教育处', '秦勤', '2012022620', '65.061'], ['12', '2', '储运销售公司', '许华', '2012130406', '64.95'], ['13', '2', '江南物业', '兰庆伟', '2012030620', '64.869'], ['14', '2', '滨江物业', '佟冬蕾', '2012110417', '64.652'], ['15', '2', '农业开发公司', '曹宽', '2012061025', '64.564'], ['16', '2', '农业开发公司', '孙成伟', '2012060318', '64.462'], ['17', '3', '红岗采油⼚', '张⼤勇', '2012020112', '64.384'], ['18', '3', '储运销售公司', '刘贤宇', '2012130721', '64.378'], ['19', '3', '建设公司', '李⽉', '2012010316', '64.029'], ['20', '3', '客运公司', '姚佳媛', '2012130613', '63.914'], ['21', '3', '物资供应处', '张丽', '2012110925', '63.883'], ['22', '3', '江北物业', '益长虹', '2012100222', '63.723'], ['23', '3', '建设公司', '张雁冰', '2012013327', '63.630'], ['24', '3', '公⽤事业管理公司', '王涵', '2012022214', '63.522']]# 在内存创建⼀个⼯作簿objwb = Workbook()ws = wb.activews.title = u'招录⼈员名单'# 向第⼀个sheet页写数据吧i = 1r = 1for line in data:for col in range(1, len(line) + 1):ColNum = rws.cell(row=r, column=col).value = line[col - 1]i += 1r += 1# ⼯作簿保存到磁盘wb.save('test.xlsx') 效果图: 数据第⼆列是组号,数字相同的组号放在⼀个单元格中,怎么办呢?#!/usr/bin/env python# _*_ coding:utf-8 _*_from openpyxl.workbook import Workbookfrom openpyxl.writer.excel import ExcelWriterdata = [['序号', '组号', '申报单位', '姓名', '准考号', '考试分数(卷⾯分)'], ['1', '1', '新民采油⼚', '刘铁', '2012051224', '67.834'], ['2', '1', '吉林油⽥总医院', '吕册', '2012120214', '66.776'], ['3', '1', '吉林油⽥总医院', '王彦苏', '2012120718', '66.683'], ['4', '1', '农业开发公司', '刘化峰', '2012060120', '66.664'], ['5', '1', '油区教育处', '沙丽珊', '2012020817', '66.657'], ['6', '1', '油区教育处', '王志会', '2012020914', '66.545'], ['7', '1', '扶余采油⼚', '姜波', '2012041210', '66.355'], ['8', '2', '红岗采油⼚', '王昕', '2012021226', '66.3'], ['9', '2', '通信公司', '彭莉', '2012121014', '66.17'], ['10', '2', '前郭矿区', '⽶云龙', '2012070121', '65.313'], ['11', '2', '油区教育处', '秦勤', '2012022620', '65.061'], ['12', '2', '储运销售公司', '许华', '2012130406', '64.95'], ['13', '2', '江南物业', '兰庆伟', '2012030620', '64.869'], ['14', '2', '滨江物业', '佟冬蕾', '2012110417', '64.652'], ['15', '2', '农业开发公司', '曹宽', '2012061025', '64.564'], ['16', '2', '农业开发公司', '孙成伟', '2012060318', '64.462'], ['17', '3', '红岗采油⼚', '张⼤勇', '2012020112', '64.384'], ['18', '3', '储运销售公司', '刘贤宇', '2012130721', '64.378'], ['19', '3', '建设公司', '李⽉', '2012010316', '64.029'], ['20', '3', '客运公司', '姚佳媛', '2012130613', '63.914'], ['21', '3', '物资供应处', '张丽', '2012110925', '63.883'], ['22', '3', '江北物业', '益长虹', '2012100222', '63.723'], ['23', '3', '建设公司', '张雁冰', '2012013327', '63.630'], ['24', '3', '公⽤事业管理公司', '王涵', '2012022214', '63.522']]# 在内存创建⼀个⼯作簿objwb = Workbook()ws = wb.activews.title = u'招录⼈员名单'# 向第⼀个sheet页写数据吧i = 1r = 1for line in data:for col in range(1, len(line) + 1):ColNum = rws.cell(row=r, column=col).value = line[col - 1]i += 1r += 1# =========合并单元格区===========Li = []tmp1 = []tmp2 = []tmp3 = []for line in data: # 枚举法,总共三组数据,求出每组数据的数量v = line[1]if v == '1':tmp1.append(v)if v == '2':tmp2.append(v)if v == '3':tmp3.append(v)Li.append(tmp1)Li.append(tmp2)Li.append(tmp3)# 定义合并单元格的开始位置start_row = 2end_row = 2start_column = 2end_column = 2for each in Li:end_row = start_row + len(each) - 1ws.merge_cells(start_row=start_row, end_row=end_row, start_column=start_column, end_column=end_column) start_row = end_row + 1# =========合并单元格区===========# ⼯作簿保存到磁盘wb.save('test.xlsx') 效果图: 我想再创建⼀个sheet页# 再创建⼀个sheet页ws = wb.create_sheet(title=u'第⼆个Sheet页')。

python中openpyxl和xlsxwriter对Excel的操作方法

python中openpyxl和xlsxwriter对Excel的操作方法

python中openpyxl和xlsxwriter对Excel的操作⽅法前⼏天,项⽬中有个⼩需求:提供Excel的上传下载功能,使⽤模块:openpyxl和xlsxwriter,这⾥简单记录⼀下。

1.简介Python中操作Excel的库⾮常多,为开发者提供了多种选择,如:xlrd、xlwt、xlutils、xlwings、pandas、win32com、openpyxl、xlsxwriter等等。

其中:前三个⼀般混合使⽤,对Excel读写操作,适合旧版Excel,仅⽀持 xls ⽂件;win32com库功能丰富,性能强⼤,适⽤于Windows;xlwings稍次于前者,但同样功能丰富;pandas适合处理⼤量数据;xlsxwriter适合⼤量数据的写操作,⽀持图⽚/表格/图表/筛选/格式/公式等;openpyxl读写均可,简单易⽤,功能⼴泛,可插⼊图表等,类似前者。

以下主要描述⼀下后两种(openpyxl、xlsxwriter)的简单使⽤2.Excel库的使⽤2.1.⽬标2.2.openpyxl的使⽤2.2.1.安装pip install openpyxl2.2.2.写⼊Excelimport osfrom openpyxl import Workbookfrom openpyxl.styles import Alignment, Font, colors, PatternFillfrom openpyxl.utils import get_column_letterFILE_PATH = os.path.join(os.path.dirname(__file__), 'files/')def write_test():wb = Workbook()filename = FILE_PATH + '/openpyxl_test.xlsx'# 活动sheetws1 = wb.activews1.title = "Test-1"# 列表追加for row in range(1, 10):ws1.append(range(9))# 创建sheetws2 = wb.create_sheet(title="Test-2")# 合并单元格ws2.merge_cells('F5:I5')# 拆分# ws2.unmerge_cells('F5:I5')# 单元赋值ws2['F5'] = 'hello world'# 居中ws2['F5'].alignment = Alignment(horizontal='center', vertical='center')# sheet标签颜⾊ws2.sheet_properties.tabColor = '1072BA'# 字体样式bold_itatic_12_font = Font(name='仿宋', size=12, italic=True, color=BLUE, bold=True)ws2['F5'].font = bold_itatic_12_font# 背景颜⾊bg_color = PatternFill('solid', fgColor='1874CD')ws2['F5'].fill = bg_color# ⾏⾼列宽ws2.row_dimensions[5].height = 40 # 第 5 ⾏ws2.column_dimensions['F'].width = 30 # F 列ws3 = wb.create_sheet(title="Test-3")for row in range(10, 20):for col in range(10, 20):ws3.cell(column=col, row=row, value="0}".format(get_column_letter(col)))print(ws3['S10'].value)# 保存wb.save(filename)2.2.3.读取Excelfrom openpyxl import load_workbookdef read_test(filename):wb = load_workbook(filename)print('取得所有⼯作表的表名 :')print(wb.sheetnames, '\n')print('取得某张⼯作表 :')# sheet = wb['Sheet1']# sheet = wb.worksheets[0]sheet = wb[wb.sheetnames[0]]print(type(sheet))print('表名: ' + sheet.title, '\n')print('取得活动⼯作表 :')active_sheet = wb.activeprint('表名: ' + active_sheet.title, '\n')print('获取⼯作表的⼤⼩:')print('总⾏数: ' + str(active_sheet.max_row))print('总列数: ' + str(active_sheet.max_column))print('\n获取单元格数据:')for row in range(sheet.max_row):for col in range(sheet.max_column):print(f"第 {row + 1} ⾏ {col + 1} 列:", sheet.cell(row=row + 1, column=col + 1).value) print('\n获取⾏数据:')for i, cell_object in enumerate(list(sheet.rows)):cell_lst = [cell.value for cell in cell_object]print(f'第 {i + 1} ⾏:', cell_lst)2.2.4.案例demo 数据源格式# contents数据contents=[{"uid": "1281948912","group_name": "测试群-5","domain": "","user_area": [{"num": 1024,"region": "中国","percent": 33.33},{"num": 1022,"region": "中国⾹港","percent": 33.33},{"num": 1021,"region": "新加坡","percent": 33.33}],"gf_area": [{"num": 5680,"region": "中国⾹港","percent": 97.8},{"num": 60,"region": "新加坡","percent": 0.8},{"num": 55,"region": "美西","percent": 0.8}],"sip_area": {"waf_ip":[""],"sip":["13.75.120.253","18.163.46.57"],"isp_region":[{"country": "中国⾹港","isp": ""},{"country": "中国⾹港","isp": ""}]}},]写⼊Excelimport osimport timefrom openpyxl import Workbook, load_workbookfrom openpyxl.styles import Alignment, Font, colors, PatternFillFILE_PATH = os.path.join(os.path.dirname(__file__), 'files/')# 颜⾊BLACK = colors.COLOR_INDEX[0]WHITE = colors.COLOR_INDEX[1]RED = colors.COLOR_INDEX[2]DARKRED = colors.COLOR_INDEX[8]BLUE = colors.COLOR_INDEX[4]DARKBLUE = colors.COLOR_INDEX[12]GREEN = colors.COLOR_INDEX[3]DARKGREEN = colors.COLOR_INDEX[9]YELLOW = colors.COLOR_INDEX[5]DARKYELLOW = colors.COLOR_INDEX[19]def export_gf_excel_test(filename=None, sheetName=None, contents=None): filename = filename if filename else 'openpyxl_Test.xlsx'sheetName = sheetName if sheetName else '测试'contents = contents if contents else []# 新建⼯作簿wb = Workbook()ws = wb.worksheets[0]# 设置sheet名称ws.title = sheetName# sheet标签颜⾊ws.sheet_properties.tabColor = '1072BA'# 居中pos_center = Alignment(horizontal='center', vertical='center')# 字体样式bold_12_font = Font(name='仿宋', size=12, italic=False,color=BLACK, bold=True)# 背景颜⾊bg_color = PatternFill('solid', fgColor='4DCFF6')# 设置标题# 合并merge_lst = ['A1:A3', 'B1:B3', 'C1:C3', 'D1:R1', 'S1:AA1', 'AB1:AE1','D2:F2', 'G2:I2', 'J2:L2', 'M2:O2', 'P2:R2', 'S2:U2', 'V2:X2','Y2:AA2', 'AB2:AB3', 'AC2:AC3', 'AD2:AD3', 'AE2:AE3'][ws.merge_cells(c) for c in merge_lst]# 填充字段title_dic = {'A1': 'UID', 'B1': '钉钉群', 'C1': '域名','D1': '⽤户区域', 'S1': '⾼防区域', 'AB1': '源站区域','D2': 'TOP1', 'G2': 'TOP2', 'J2': 'TOP3', 'M2': 'TOP4', 'P2': 'TOP5','S2': 'TOP1', 'V2': 'TOP2', 'Y2': 'TOP3','AB2': 'WAF IP', 'AC2': '源站IP', 'AD2': '源站IP区域', 'AE2': '运营商'}line3_v = ['物理区域', '请求量', '占⽐'] * 8line3_k = [chr(i) + '3' for i in range(68, 91)] + ['AA3']title_dic.update(dict(zip(line3_k, line3_v)))for k, v in title_dic.items():ws[k].value = vws[k].font = bold_12_fontws[k].alignment = pos_centerws[k].fill = bg_color# 列宽width_dic = {'A': 30, 'B': 30, 'C': 30,'AB': 16, 'AC': 16, 'AD': 16, 'AE': 16}for k, v in width_dic.items():ws.column_dimensions[k].width = v# 内容for i, dic in enumerate(contents):user_gf_mod = {'region': '', 'num': '', 'percent': ''}user_area = dic['user_area']gf_area = dic['gf_area']sip_area = dic['sip_area']# UID+域名data = [dic['uid'], dic['group_name'], dic['domain']]# ⽤户区域if not user_area:user_area = [user_gf_mod] * 5else:user_area = list(map(lambda item: {'region': item['region'], 'num': item['num'], 'percent': item['percent']}, user_area))[user_area.append(user_gf_mod) for _ in range(5 - len(user_area))][data.extend(user_area[u].values()) for u in range(len(user_area))]# ⾼防区域if not gf_area:gf_area = [user_gf_mod] * 3else:gf_area = list(map(lambda item: {'region': item['region'], 'num': item['num'], 'percent': item['percent']}, gf_area))[gf_area.append(user_gf_mod) for _ in range(3 - len(gf_area))][data.extend(gf_area[g].values()) for g in range(len(gf_area))]# 源站区域waf_ip = sip_area['waf_ip']sip = sip_area['sip']isp_region = sip_area['isp_region']data.append(','.join(waf_ip)) if waf_ip else data.append('')data.append(','.join(sip)) if sip else data.append('')if not isp_region:data.extend([''] * 2)else:try:country = ','.join(map(lambda item: item['country'], isp_region))isp = ','.join(map(lambda item: item['isp'] if item['isp'] else '暂未查到', isp_region))data.append(country)data.append(isp)except Exception as e:print(e)print(isp_region)# 写⼊Excelws.append(data)# 保存⽂件wb.save(filename=filename)if __name__ == "__main__":curTime = ''.join(map(lambda i: str(i) if len(str(i)) >= 2 else '%02d' % i, [i for i in time.localtime()[:-4]])) filename = os.path.join(FILE_PATH, 'openpyxl_Test_{}.xlsx'.format(curTime))export_gf_excel_test(filename, contents=contents)2.3.xlsxwriter的使⽤2.3.1.安装pip install XlsxWriter2.3.2.写⼊Excelimport osimport timeimport jsonimport xlsxwriterFILE_PATH = os.path.join(os.path.dirname(__file__), 'files/')def export_gf_excel_test(filename=None, sheetName=None, contents=None):filename = filename if filename else 'xlsxwriter_Test.xlsx'sheetName = sheetName if sheetName else '测试'contents = contents if contents else []# 新建wb = xlsxwriter.Workbook(filename)ws = wb.add_worksheet(name=sheetName)# 设置风格style1 = wb.add_format({"bold": True,'font_name': '仿宋','font_size': 12,# 'font_color': '#217346','bg_color': '#4DCFF6',"valign": 'vcenter','text_wrap': 1})style2 = wb.add_format({# "bold": True,# 'font_name': '仿宋','font_size': 11,'font_color': '#217346','bg_color': '#E6EDEC',"align": 'center',"valign": 'vcenter',# 'text_wrap': 1})# 标题ws.set_column('A1:AE1', None, style1)# 合并单元格: first_row, first_col, last_row, last_col# 第 1 ⾏ws.merge_range(0, 0, 2, 0, 'UID')ws.merge_range(0, 1, 2, 1, '钉钉群')ws.merge_range(0, 2, 2, 2, '域名')ws.merge_range(0, 3, 0, 17, '⽤户区域')ws.merge_range(0, 18, 0, 26, '⾼防区域')ws.merge_range(0, 27, 0, 30, '源站区域')# 第 2 ⾏user_tl2 = ['TOP' + str(i) for i in range(1, 6)]gf_tl2 = user_tl2[:3][ws.merge_range(1, 3 * (i + 1), 1, 3 * (i + 2) - 1, name) for i, name in enumerate(user_tl2 + gf_tl2)] # 第 3 ⾏user_gf_tl3 = ['物理区域', '请求量', '占⽐'] * 8sip_tl3 = ['WAF IP', '源站IP', '源站IP区域', '运营商'][ws.write(2, 3 + i, name) for i, name in enumerate(user_gf_tl3)][ws.merge_range(1, 27 + i, 2, 27 + i, name) for i, name in enumerate(sip_tl3)]# ws.write(11, 2, '=SUM(1:10)') # 增加公式# ws.set_default_row(35) # 设置默认⾏⾼# 设置列宽ws.set_column(0, 2, 30)ws.set_column(3, 26, 10)ws.set_column(27, 30, 16)# 内容for i, dic in enumerate(contents):user_gf_mod = {'region': '', 'num': '', 'percent': ''}user_area = dic['user_area']gf_area = dic['gf_area']sip_area = dic['sip_area']# UID+域名data = [dic['uid'], dic['group_name'], dic['domain']]# ⽤户区域if not user_area:user_area = [user_gf_mod] * 5else:user_area = list(map(lambda item: {'region': item['region'], 'num': item['num'], 'percent': item['percent']}, user_area))[user_area.append(user_gf_mod) for _ in range(5 - len(user_area))][data.extend(user_area[u].values()) for u in range(len(user_area))]# ⾼防区域if not gf_area:gf_area = [user_gf_mod] * 3else:gf_area = list(map(lambda item: {'region': item['region'], 'num': item['num'], 'percent': item['percent']}, gf_area))[gf_area.append(user_gf_mod) for _ in range(3 - len(gf_area))][data.extend(gf_area[g].values()) for g in range(len(gf_area))]# 源站区域waf_ip = sip_area['waf_ip']sip = sip_area['sip']isp_region = sip_area['isp_region']data.append(','.join(waf_ip)) if waf_ip else data.append('')data.append(','.join(sip)) if sip else data.append('')if not isp_region:data.extend([''] * 2)else:try:country = ','.join(map(lambda item: item['country'], isp_region))isp = ','.join(map(lambda item: item['isp'] if item['isp'] else '暂未查到', isp_region))data.append(country)data.append(isp)except Exception as e:print(e)# 写⼊Excelws.write_row('A' + str(i + 4), data, style2)# 保存关闭⽂件wb.close()if __name__ == '__main__':curTime = ''.join(map(lambda i: str(i) if len(str(i)) >= 2 else '%02d' % i, [i for i in time.localtime()[:-4]]))filename = os.path.join(FILE_PATH, 'xlsxwriter_Test_{}.xlsx'.format(curTime))export_gf_excel_test(filename, contents=contents)以上是两个库操作Excel的简单实现。

python处理excel文件(xls和xlsx)

python处理excel文件(xls和xlsx)

python处理excel⽂件(xls和xlsx)转载 https:///Forever77/p/11135124.html⼀、xlrd和xlwt使⽤之前需要先安装,windows上如果直接在cmd中运⾏python则需要先执⾏pip3 install xlrd和pip3 install xlwt,如果使⽤pycharm则需要在项⽬的解释器中安装这两个模块,File-Settings-Project:layout-Project Interpreter,点击右侧界⾯的+号,然后搜索xlrd和xlwt,然后点击Install Package进⾏安装。

对于excel来说,整个excel⽂件称为⼯作簿,⼯作簿中的每个页称为⼯作表,⼯作表⼜由单元格组成。

对于xlrd和xlwt,⾏数和列数从0开始,单元格的⾏和列也从0开始,例如sheet.row_values(2)表⽰第三⾏的内容,sheet.cell(1,2).value表⽰第⼆⾏第三列单元格的内容。

1.xlrd模块读取excel⽂件使⽤xlrd模块之前需要先导⼊import xlrd,xlrd模块既可读取xls⽂件也可读取xlsx⽂件。

获取⼯作簿对象:book = xlrd.open_workbook('excel⽂件名称')获取所有⼯作表名称:names = book.sheet_names(),结果为列表根据索引获取⼯作表对象:sheet = book.sheet_by_index(i)根据名称获取⼯作表对象:sheet = book.sheet_by_name('⼯作表名称')获取⼯作表⾏数:rows = sheet.nrows获取⼯作表列数:cols = sheet.ncols获取⼯作表某⼀⾏的内容:row = sheet.row_values(i) ,结果为列表【sheet.row(i),列表】获取⼯作表某⼀列的内容:col = sheet.col_values(i) 结果为列表【sheet.col(i),列表】获取⼯作表某⼀单元格的内容:cell = sheet.cell_value(m,n)、 sheet.cell(m,n).value、sheet.row(m)[n].value,sheet.col(n)[m].value,结果为字符串或数值【sheet.cell(0,0),xlrd.sheet.Cell对象】⽰例:假设在py执⾏⽂件同层⽬录下有⼀fruit.xls⽂件,有三个sheet页Sheet1、Sheet2、Sheet3,其中Sheet1内容如下:xlrd读取excel⽰例可以看出通过sheet.row(i)、sheet.col(i)也可获取⾏或列的内容,并且结果也是⼀个列表,但是列表中的每⼀项类似字典的键值对,形式为数据类型:值。

python2.7的openpyxl用法

python2.7的openpyxl用法

python2.7的openpyxl用法openpyxl是一个用于读写Excel文件的Python库,支持Excel 2010及以上版本的xlsx文件格式。

下面我将详细介绍openpyxl的用法,包括如何创建、读取和写入Excel文件,以及其他一些常用的操作。

1. 安装openpyxl:要使用openpyxl,首先需要安装它。

可以使用pip命令来安装openpyxl,命令如下:pip install openpyxl2. 导入openpyxl:安装完成后,在Python脚本中导入openpyxl库,如下所示:pythonfrom openpyxl import Workbookfrom openpyxl import load_workbook3. 创建和保存Excel文件:使用openpyxl可以创建一个Excel文件,并将数据保存到文件中。

下面是一个简单的示例:python# 创建一个工作簿对象wb = Workbook()# 获取默认的工作表ws = wb.active# 在A1单元格中写入数据ws['A1'] = 'Hello, World!'# 保存工作簿到文件wb.save('example.xlsx')这个示例创建了一个Workbook对象,然后获取默认的工作表(索引为0),在A1单元格中写入了数据,并将工作簿保存到名为example.xlsx的文件中。

4. 加载和读取Excel文件:openpyxl可以加载已存在的Excel文件,并读取其中的数据。

下面是一个示例:python# 加载Excel文件wb = load_workbook('example.xlsx')# 获取默认的工作表ws = wb.active# 读取A1单元格的值value = ws['A1'].valueprint(value)这个示例加载了之前创建的example.xlsx文件,获取了默认的工作表,并读取了A1单元格中的值。

python利用openpyxl库操作Excel来读取、修改、写入测试数据

python利用openpyxl库操作Excel来读取、修改、写入测试数据

python利⽤openpyxl库操作Excel来读取、修改、写⼊测试数据⼀、openpyxl模块介绍1、openpyxl是读写Excel的python库,是⼀个⽐较综合的⼯具,能够同时读取和修改Excel⽂档2、openpyxl中有三个不同层次的类,每⼀个类都有各⾃的属性和⽅法:Workbook是⼀个excel⼯作表Worksheet是⼯作表中的表单,如图Cell就是表单中的⼀个格3、操作Excel的⼀般场景:打开或者创建⼀个Excel需要创建⼀个Workbook对象获取⼀个表则需要先创建⼀个Workbook对象,然后使⽤该对象的⽅法来得到⼀个Worksheet对象4、Workbook对象⼀个Workbook对象代表⼀个Excel⽂档,因此在操作Excel之前,都应该先创建⼀个Workbook对象。

对于⼀个已经存在的Excel⽂档,可以使⽤openpyxl模块的load_workbook函数进⾏读取,该函数包涵多个参数,但只有filename参数为必传参数。

filename 是⼀个⽂件名,也可以是⼀个打开的⽂件对象。

⼆、安装openpyxl模块在cmd命令⾏下输⼊命令:pip install openpyxl三、代码实现(在Pycharm中编写代码)1、本地新建⼀个Excel表test_case.xlsx2、复制test_case.xlsx到Pycharm:3、⽤python操作excel导⼊load_workbook库from openpyxl import load_workbook第⼀步:打开excelworkbook1=load_workbook('test_case.xlsx')第⼆步:定位表单(test_data)sheet=workbook1['test_data']第三步:操作excel的test_data表单1、定位单元格(cell),根据⾏列读取测试数据data=sheet.cell(3,2).valueprint(data)特殊说明:定位C2单元格数据{'mobilephone':'135********','pwd':'123456'}data=sheet.cell(2,3).value查看C2单元格数据类型为,但实际为dict类型print(type(data)) 输出str将str类型转化为他原来的类型dict:eval(data)print(type(eval(data))) 输出dict综上可得:excel 存储的数据,数字还是数字:int—>int、 float—>float 、其他类型—>str使⽤eval(数据) 将str类型转换为他原来的类型2、定位单元格(cell),根据⾏列值,更改原有的数据、写⼊新的测试数据,sheet.cell(3,2).value='妮妮' #更改已经存在的测试数据sheet.cell(6,3).value='⼩⼩' #在空的单元格写⼊新的测试值workbook1.save('test_case.xlsx') #保存修改3、统计⾏和列(参考上图)max_row=sheet.max_rowmax_cow = sheet.max_columnprint('最⼤的⾏值:',max_row) #输出6print('最⼤的列值:',max_cow) #输出7从excel中读取测试⽤例:1#读取每⼀条测试⽤⽤例分别保存到字典中,然后再将所有⽤例保存到列表中,如[{⽤例1},{⽤例2},{⽤例3}] 2def read_case():3 workbook1=load_workbook('test_case.xlsx')4 sheet=workbook1['test_data']5 max_row=sheet.max_row6 test_case=[]7for row in range(2,max_row+1):8 sub_data={}9 sub_data['case_id']=sheet.cell(row,1).value10 sub_data['title']=sheet.cell(row,2).value11 sub_data['data']=sheet.cell(row,3).value12 sub_data['method']=sheet.cell(row,4).value13 sub_data['expected']=sheet.cell(row,5).value14 test_case.append(sub_data)15print("读取到的所有测试⽤例:",test_case)1617 read_case()read_case。

python使用openpyxl操作Excel表格-工作簿与工作表的创建

python使用openpyxl操作Excel表格-工作簿与工作表的创建

python使⽤openpyxl操作Excel表格-⼯作簿与⼯作表的创建python使⽤openpyxl操作Excel表格概念相关的库:xlrd库:从excel中读取数据,⽀持xls、xlsxxlwt库:对excel进⾏修改操作,不⽀持对xlsx格式的修改xlutils库:在xlw和xlrd中,对⼀个已存在的⽂件进⾏修改。

openpyxl:主要针对xlsx格式的excel进⾏读取和编辑。

Excel中的对象:WorkBook:⼯作簿对象Sheet:表单对象Cell:表格对象安装openpyxl库:pip install openpyxl⼯作簿的创建以及⼯作表的修改# 创建⼯作簿,使⽤openpyxl的Workbook类创建实例# 从openpyxl包中导⼊Workbook⽤于创建⼯作簿from openpyxl import Workbook# 从openpyxl包中导⼊load_workbook⽤于读取已有的⼯作簿from openpyxl import load_workbook# 使⽤Workbook()实例化⼀个对象wb,默认⽣成⼀个sheet名词的⼯作表wb = Workbook()# 修改默认sheet表的名称,使⽤wb.active获取活动表,默认只有⼀个ws = wb.activeprint('默认表名称',ws)ws.title = '修改默认sheet表名称'print('修改后表名称',ws)# 在⼯作簿中新建⼀个⼯作表,使⽤create_sheet()⽅法,第⼀个参数是⼯作表的名称,第⼆个是索引位置,0表⽰第⼀个ws_1 = wb.create_sheet('第⼆个表',1)# 保存我们创建的⼯作表和⼯作簿到当前⽬录下,使⽤save()⽅法,参数为保存的⼯作簿名称wb.save('Mytest.xlsx')# 最后关闭⼯作簿,使⽤close()⽅法wb.close()。

python使用openpyxl库修改excel表格数据方法

python使用openpyxl库修改excel表格数据方法

python使⽤openpyxl库修改excel表格数据⽅法1、openpyxl库可以读写xlsx格式的⽂件,对于xls旧格式的⽂件只能⽤xlrd读,xlwt写来完成了。

简单封装类:from openpyxl import load_workbookfrom openpyxl import Workbookfrom openpyxl.chart import BarChart, Series, Reference, BarChart3Dfrom openpyxl.styles import Color, Font, Alignmentfrom openpyxl.styles.colors import BLUE, RED, GREEN, YELLOWclass Write_excel(object):def __init__(self,filename):self.filename = filenameself.wb = load_workbook(self.filename)self.ws = self.wb.activedef write(self, coord, value):# eg: coord:A1self.ws.cell(coord).value = valueself.wb.save(self.filename)def merge(self, rangstring):# eg: rangstring:A1:E1self.ws.merge_cells(rangstring)self.wb.save(self.filename)def cellstyle(self, coord, font, align):cell = self.ws.cell(coord)cell.font = fontcell.alignment = aligndef makechart(self, title, pos, width, height, col1, row1, col2, row2, col3, row3, row4):''':param title:图表名pos:图表位置width:图表宽度height:图表⾼度'''data = Reference(self.ws, min_col=col1, min_row=row1, max_col=col2, max_row=row2)cat = Reference(self.ws, min_col=col3, min_row=row3, max_row=row4)chart = BarChart3D()chart.title = titlechart.width = widthchart.height = heightchart.add_data(data=data, titles_from_data=True)chart.set_categories(cat)self.ws.add_chart(chart, pos)self.wb.save(self.filename)简单使⽤:1、新建excel⽂件处理wb = Workbook()#创建⼯作簿ws = wb.active#激活⼯作表ws1 = wb.create_sheet("Mysheet")#创建mysheet表ws.title = "New Title"#表明改为New Titlews.sheet_properties.tabColor = "1072BA"#颜⾊ws['A4'] = 4#赋值d = ws.cell(row=4, column=2, value=10)#赋值cell_range = ws['A1':'C2']#选择单元格区域wb.save('test.xlsx')#保存2、已有excel⽂件的处理a、修改excel数据wr = Write_excel('d:\demo.xlsx')wr.write('A2','hello')b、合并单元格wr.merge('A1:B3')c、单元格加⼊样式,如字体,颜⾊等属性单元格B2设置宋体,14号,红⾊,⾃动换⾏,⽔平居中,垂直居中font = Font(name=u'宋体', size=14, color=RED, bold=True)align = Alignment(horizontal='center', vertical='center')wr.cellstyle('B2', font, align)d、创建3d柱状图rows = [(None, 2013, 2014),("Apples", 5, 4),("Oranges", 6, 2),("Pears", 8, 3)]for row in rows:ws.append(row)wr.makechart(u"3D Bar Chart", 'E5', 12.5, 7, 2, 1, 3, 4, 1, 2, 4)可以创建3d柱状和折线图表,挺好⽤的。

使用Python处理excel表格(openpyxl)教程

使用Python处理excel表格(openpyxl)教程

使⽤Python处理excel表格(openpyxl)教程现在有个⼩任务,需要处理excel中的数据。

其实就是简单的筛选,excel玩的不熟练,⽽且需要处理的表有70多个,于是想着写个脚本处理⼀下吧。

python中的openpyxl包可以轻松实现读写excel⽂件,下⾯简单介绍⼀下过程。

1.安装openpyxl通过pip或者easy_install均可安装openpyxl。

openpyxl官⽹:https:///en/latest/安装命令:pip install openpyxl (在线安装)或者 easy_install openpyxl 即可。

2.使⽤openpyxl读xlsx加载workbook,注意,openpyxl只⽀持xlsx格式,⽼版的xls格式需要其他⽅法去加载。

wb = load_workbook(filename = r'tj.xlsx')获取每个sheet的名称sheetnames = wb.get_sheet_names()获得第⼀个sheetws = wb.get_sheet_by_name(sheetnames[0])获取⼀个单元格的数据c = ws['A4']或者c = ws.cell('A4')或者d = ws.cell(row = 4, column = 2)⼀次获取多个单元格的数据cell_range = ws['A1':'C2']或者tuple(ws.iter_rows('A1:C2'))或者1. for row in ws.iter_rows('A1:C2'):2. for cell in row:3. <span style='white-space:pre'> </span>print cell或者1. data_dic = []2.3. for rx in range(0,ws.get_highest_row()):4.5. temp_list = []6. money = ws.cell(row = rx,column = 1).value7. kind = ws.cell(row = rx,column = 2).value8.9. temp_list = [money , kind]10. #print temp_list11.12. data_dic.append(temp_list)13.14. for l in data_dic:15. print l[0],l[1]3.写⼊xlsx⽐如数据存在上边定义的data_dic中1. out_filename = r'result.xlsx'2.3. outwb = Workbook()4.5. ew = ExcelWriter(workbook = outwb)6.7. ws = outwb.worksheets[0]8.9. ws.title = 'res'9. ws.title = 'res'10.11. i=112. for data_l in data_dic:13. for x in range(0,len(data_l)):14. #col = get_column_letter(x)15. ws.cell(column = x+1 , row = i , value = '%s' % data_l[x])16. i+=117.18. ew.save(filename = out_filename)再增加⼀个sheet写内容1. ws2 = outwb.create_sheet(title = 's2')2.3. for data_l in data_dic:4. for x in range(0,len(data_l)):5. ws2.cell(column = x+1 , row = i , value = '%s' % data_l[x])6. i+=17.8. ew.save(filename = out_filename)4.中⽂编码问题表格中的值,openpyxl会⾃动转换为不同的类型,有些表格中会有中⽂出现,就需要进⾏相应的转码。

openpyxl 用法

openpyxl 用法

openpyxl 用法openpyxl是一个用于处理Excel文件的Python库,它可以进行读写、操作和修改Excel文件。

在本文中,我将介绍openpyxl的基本用法,并提供一些例子来帮助读者更好地理解。

1. 安装openpyxl库要使用openpyxl库,首先需要在Python环境中安装该库。

可以通过以下命令来安装openpyxl库:pip install openpyxl这将自动下载并安装openpyxl库及其依赖项。

2. 打开Excel文件在使用openpyxl处理Excel文件之前,我们需要先打开一个Excel文件。

可以使用openpyxl库的`load_workbook()`函数来打开一个现有的Excel文件,或者使用`Workbook()`函数创建一个新的Excel文件。

pythonfrom openpyxl import load_workbook打开一个现有的Excel文件workbook = load_workbook('example.xlsx')创建一个新的Excel文件workbook = Workbook()3. 选择工作表在Excel中,一个文件可以包含多个工作表。

使用openpyxl库,可以通过工作表名称或索引来选择要操作的工作表。

使用`workbook.active`属性可以选择默认的活动工作表,或者使用`workbook.get_sheet_by_name()`方法根据工作表名称选择工作表。

python选择默认的活动工作表worksheet = workbook.active根据工作表名称选择工作表worksheet = workbook.get_sheet_by_name('Sheet1')根据索引选择工作表worksheet = workbook.get_sheet_by_name(0)4. 读取单元格数据使用openpyxl库,可以通过指定工作表的行号和列号来读取单元格中的数据。

openpyxl写入excle方法

openpyxl写入excle方法

openpyxl写入excle方法在处理Excel文件时,`openpyxl`是一个非常实用的Python库,它支持读写Excel 2010 xlsx/xlsm文件。

在这篇文档中,我们将详细介绍如何使用`openpyxl`库来写入Excel文件。

### openpyxl写入Excel的方法#### 1.安装openpyxl在开始之前,请确保您已经安装了`openpyxl`库。

如果还没有安装,可以通过以下命令进行安装:```bashpip install openpyxl```#### 2.创建一个新的工作簿首先,您需要创建一个新的工作簿或加载现有的工作簿:```pythonfrom openpyxl import Workbook# 创建一个工作簿wb = Workbook()# 选择当前正在工作的表,默认为第一个表ws = wb.active```#### 3.写入单元格你可以使用工作表的`cell`方法或直接使用单元格的坐标来写入数据:```python# 方法1: 使用cell方法ws.cell(row=1, column=1, value="Hello")# 方法2: 直接使用坐标ws["A1"] = "Hello"```#### 4.写入行使用`append`方法可以添加一行数据:```python# 添加一行数据ws.append([1, 2, 3])```#### 5.写入多个单元格你可以遍历行和列,向多个单元格中写入数据:```pythonfor row in range(1, 10):ws.append(range(10))```或者使用`iter_rows`或`iter_columns`:```pythonfor row in ws.iter_rows(min_row=1, max_row=2, min_col=1,max_col=3):for cell in row:cell.value = "Test"```#### 6.保存文件所有更改都需要保存到文件中,否则将不会被持久化:```python# 保存到新的Excel文件中wb.save("example.xlsx")```#### 7.修改现有文件如果你需要修改现有的Excel文件,只需要加载它而不是创建新的:```pythonfrom openpyxl import load_workbook# 加载现有的工作簿wb = load_workbook("existing_file.xlsx")ws = wb.active# 修改数据ws["A1"] = "New data"# 保存更改wb.save("existing_file.xlsx")```### 结论`openpyxl`是一个功能强大的工具,可以用来创建和修改Excel文件。

python:openpyxl带格式复制excel

python:openpyxl带格式复制excel
不知道为什么我的窗口检测不到事件不管是匿名内部类还是写子类然后添加事件监听都没有用
python: openpyxl带格式复制 excel
以下代码可实现excel带格式复制
import copy import openpyxl from openpyxl.utils import get_column_letter
path = "数据.xlsx" save_path = "数据-复制.xlsx"
wb = openpyxl.load_workbook(path) wb2 = openpyxl.Workbook()
sheetnames = wb.sheetnames for sheetname in sheetnames:
target_cell._style = copy.copy(source_cell._style) target_cell.font = copy.copy(source_cell.font) target_cell.border = copy.copy(source_cell.border) target_cell.fill = copy.copy(source_cell.fill) target_cell.number_format = copy.copy(source_cell.number_format) target_cell.protection = copy.copy(source_cell.protection) target_cell.alignment = copy.copy(source_cell.alignment)
if 'Sheet' in wb2.sheetnames: del wb2['Sheet']

在python openpyxl使用方法

在python openpyxl使用方法

(原创实用版4篇)编制人员:_______________审核人员:_______________审批人员:_______________编制单位:_______________编制时间:____年___月___日序言下面是本店铺为大家精心编写的4篇《在python openpyxl使用方法》,供大家借鉴与参考。

下载后,可根据实际需要进行调整和使用,希望能够帮助到大家,谢射!(4篇)《在python openpyxl使用方法》篇1OpenPyXL 是一个用于处理 Excel 文件的 Python 库,它可以让你轻松地读取、修改和创建 Excel 文件。

《在python openpyxl使用方法》篇2OpenPyXL 是一个用于读取和写入 Excel 文件的 Python 库,它支持 Excel 2007 及更高版本的文件格式。

要使用 OpenPyXL,首先需要安装它,然后可以使用以下方法读取和写入 Excel 文件。

安装方法:```bashpip install openpyxl```使用方法:1. 导入库```pythonimport openpyxl```2. 读取 Excel 文件```python# 读取整个工作簿workbook = openpyxl.load_workbook("example.xlsx")# 读取指定工作表worksheet = workbook["Sheet1"]# 读取单元格的值cell_value = worksheet["A1"].value# 读取单元格的样式style = worksheet["A1"].style```3. 写入 Excel 文件```python# 创建一个新的工作簿workbook = openpyxl.Workbook()# 创建一个新的工作表worksheet = workbook.active# 写入单元格的值worksheet["A1"].value = "Hello, World!"# 设置单元格的样式worksheet["A1"].style = {"font-size": 16, "bold": True}# 保存工作簿workbook.save("example.xlsx")```以上就是使用 OpenPyXL 读取和写入 Excel 文件的基本方法。

python中openpyxl的用法

python中openpyxl的用法

python中openpyxl的用法openpyxl是一个Python库,它允许读取和写入Microsoft Excel 2010(xlsx/xlsm/xltx/xltm)文件。

通过使用openpyxl,可以在Python中创建、修改、保存Excel文件,还可以进行数据分析、数据处理等操作。

使用openpyxl的第一步就是安装它。

可以使用pip命令来安装openpyxl:```pythonpip install openpyxl```安装完成之后,就可以开始使用openpyxl了。

以下是一些常见的openpyxl用法:1. 创建一个Excel文件```pythonfrom openpyxl import Workbookwb = Workbook() # 创建一个新的Excel文件ws = wb.active # 获取当前活动的工作表ws['A1'] = '姓名'ws['B1'] = '年龄'ws['C1'] = '性别'ws['A2'] = '张三'ws['B2'] = 20ws['C2'] = '男'wb.save('example.xlsx') # 保存文件```在这个例子中,我们使用Workbook类创建了一个新的Excel文件,并获取了当前活动的工作表。

接着使用工作表的cell属性来设置单元格的值,最后使用save()方法保存文件。

2. 打开一个Excel文件```pythonfrom openpyxl import load_workbookwb = load_workbook('example.xlsx') # 打开已有的Excel文件ws = wb.active # 获取当前活动的工作表print(ws['A1'].value) # 输出单元格A1的值```在这个例子中,我们使用load_workbook()函数来打开一个已有的Excel文件,并获取了当前活动的工作表。

5.2.3 使用openpyxl模块操作Excel文件

5.2.3 使用openpyxl模块操作Excel文件

print(workbook)
<openpyxl.workbook.workbook.Workbook object at 0x0000026B1A87F4E0>
print(workbook.sheetnames)
['Sheet']
table = workbook.active print(table)
wb.save(filename=output_file_name)
使用openpyxl将数据写入Excel文件
save_excel(openpyxl_data, output_file_name)
使用openpyxl读取Excel文件中的数据
读取方式
使用openpyxl读取Excel文件中的数据
('我', '们', '在', '这', '寻', '找'), ('我', '们', '在', '这', '失', '去'), ('p', 'y', 't', 'h', 'o', 'n')]
output_file_name = 'openpyxl_file.xlsx'
使用openpyxl将数据写入Excel文件
rows = len(target_list) lines = len(target_list[0])
for i in range(rows): for j in range(lines): ws.cell(row=i + 1, column=j + 1).value = target_list[i][j]

Python中用OpenPyXL处理Excel表格-单元格格式设置

Python中用OpenPyXL处理Excel表格-单元格格式设置

Python中⽤OpenPyXL处理Excel表格-单元格格式设置官⽅⽂档:OpenPyXL库 --单元格样式设置单元格样式的控制,依赖openpyxl.style包,其中定义有样式需要的对象,引⼊样式相关:from openpyxl.styles import PatternFill, Font, Alignment, Border, SideBorder 边框 Side 边线PatternFill 填充Font 字体Aignment 对齐以上基本可满⾜需要基本⽤法是,将单元格对象的设置的属性赋为新的与默认不同的相应对象。

导⼊excelfrom openpyxl import load_workbookfrom openpyxl.styles import Border,Sidewb = load_workbook("模板.xlsx")#使⽤openpyxl读取xlsx⽂件,创建workbookws = wb.activews<Worksheet "sheet1">1、Border 边框 Side 边线from openpyxl.styles import Border, Sideborder_type=Side(border_style=None, color='FF000000')border = Border(left=border_type,right=border_type,top=border_type,bottom=border_type,diagonal=border_type,diagonal_direction=0,outline=border_type,vertical=border_type,horizontal=border_type)border_style的样式有:‘dashDot’,‘dashDotDot’,‘dashed’,‘dotted’,‘double’,‘hair’,‘medium’,‘mediumDashDot’,‘mediumDashDotDot’,‘mediumDashed’,‘slantDashDot’,‘thick’,‘thin’举例,原excel# 样式1 - 窄边框,⿊⾊thin = Side(border_style="thin", color="000000")#边框样式,颜⾊border = Border(left=thin, right=thin, top=thin, bottom=thin)#边框的位置ws['A3'].border = border #A3单元格设置边框for row in ws['A5:D6']:for cell in row:cell.border = border#A5:D6区域单元格设置边框wb.save("test.xlsx")效果:# 样式2- 宽边框,蓝⾊thin = Side(border_style="thick", color="0000FF")#边框样式,颜⾊border = Border(left=thin, right=thin, top=thin, bottom=thin)#边框的位置ws['A3'].border = border #A3单元格设置边框for row in ws['A5:D6']:for cell in row:cell.border = border#A5:D6区域单元格设置边框wb.save("test.xlsx")效果:2、字体设置from openpyxl.styles import Fontfont = Font(name='Calibri',size=11,color='FF000000',bold=False,italic=False,vertAlign=None,underline='none',strike=False)字体名称、字体⼤⼩、字体颜⾊、加粗、斜体、纵向对齐⽅式(有三种:baseline,superscript, subscript)、下划线、删除线,字体颜⾊可以⽤RGB或aRGB,font = Font(size=14, bold=True, name='微软雅⿊', color="FF0000")#字体⼤⼩,加粗,字体名称,字体名字ws['A3']="欢迎关注:永恒君的百宝箱"ws['A3'].font = fontwb.save("test.xlsx")3、填充from openpyxl.styles import PatternFill# fill_type 的样式为 None 或 solidfill = PatternFill(fill_type = None,start_color='FFFFFF',end_color='000000')fill_type类型有:'none'、'solid'、'darkDown'、'darkGray'、'darkGrid'、'darkHorizontal'、'darkTrellis'、'darkUp'、'darkVertical'、'gray0625'、'gray125'、'lightDown'、'lightGray'、'lightGrid'、'lightHorizontal'、'lightTrellis'、'lightUp'、'lightVertical'、'mediumGray'官⽅⽂档中写明,fill_type若没有特别指定类型,则后续的参数都⽆效所以上述代码就会出问题,start_color代表前景⾊,end_color是背景⾊,之所以设置两个参数是为了⽅便样式颜⾊的填充和渐变⾊的显⽰(个⼈认为)如果想要纯⾊填充的话可以⽤'solid',然后令前景⾊为你需要的颜⾊即可,即:fill = PatternFill(fill_type = None,start_color='FF0000')fill = PatternFill(patternType="solid", start_color="33CCFF")#纯⾊填充ws['A3']="欢迎关注:永恒君的百宝箱"ws['A3'].fill = fillwb.save("test.xlsx")4、对齐from openpyxl.styles import Alignmentalign = Alignment(horizontal='left',vertical='center',wrap_text=True)horizontal代表⽔平⽅向,可以左对齐left,还有居中center和右对齐right,分散对齐distributed,跨列居中centerContinuous,两端对齐justify,填充fill,常规generalvertical代表垂直⽅向,可以居中center,还可以靠上top,靠下bottom,两端对齐justify,分散对齐distributed⾃动换⾏:wrap_text,这是个布尔类型的参数,这个参数还可以写作wrapTextalign = Alignment(horizontal='right',vertical='center',wrap_text=True)#纯⾊填充ws['A3']="永恒君的百宝箱"ws['A3'].alignment = alignwb.save("test.xlsx")。

【python】使用openpyxl解析json并写入excel(xlsx)

【python】使用openpyxl解析json并写入excel(xlsx)

【python】使⽤openpyxl解析json并写⼊excel(xlsx)⽬标:将json⽂本解析并存储到excel中使⽤python包 openpyximport simplejsonmport codecsimport openpyxlimport os#def write_xlsx(origin_root_path,file_name, write_path, workbook):origin_path = origin_root_path + file_namesheet_name = file_name.split('.')[0]print(sheet_name + ' sheet ' + "processing ...")# 使⽤simplejson.load⽅法先读原始json⽂件origin_pathfile = codecs.open(origin_path, 'rb', 'utf-8')file_json = simplejson.load(file)# 创建sheet# 该⽅法传⼊了workbook的参数,所以函数体内部未新建workbookworksheet = workbook.create_sheet(sheet_name)# 写⼊excel数据⾏row = 1cmp_names = list(file_json.keys())cmp_len = len(cmp_names)for i in range(cmp_len): #每个公司cmp_name = cmp_names[i]# 是否有多页数据pages_len = len(file_json[cmp_name])for pages_in in range(pages_len): #每页数据cmp_page = file_json[cmp_name][pages_in]# code = 200 有数据if(cmp_page['code'] == 100 or cmp_page['code'] ==500):continueelif(cmp_page['code'] == 200):cmp_page_data = file_json[cmp_name][pages_in]['data'] # 第pages_in页数据# 判断每页是否有多条数据(根据cmp_data字典中时是否有key:list来判断)if( 'list' in list(cmp_page_data.keys())): #data中多条数据# list中每⼀个元素⼀⾏数据cmp_data_list = cmp_page_data['list']cmp_data_list_len = len(cmp_data_list)for item_in in range(cmp_data_list_len):item_data = cmp_data_list[item_in]item_data_keys = list(item_data.keys())item_data_values = list(item_data.values())item_data_len = len(item_data_values)#写⼊表头if(row == 1):worksheet.cell(row, 1, "CMP_NAME")for col in range(item_data_len): #调⽤worksheet.cel⽅法根据row和col定位在excel中的单元格,写⼊value。

Python用openpyxl读写Excel

Python用openpyxl读写Excel

Python⽤openpyxl读写Excel ⼀、安装包pip3 install openpyxl⼆、创建Excel,写⼊数据from openpyxl import Workbook#创建Workbook,并默认会创建⼀个空表,名称为:Sheetwb = Workbook()#获取默认的sheetws1 = wb.active#设置Sheet名称ws1.title = 'Sheet1'#写⼊单个单元格ws1['A1'] = '标题列1'ws1['B1'] = '标题列2'#写⼊多个单元格(从有数据的⾏的下⼀⾏写⼊)ws1.append(['张三', 80])ws1.append(['李四', 90])#创建⼀个新sheet,可以指定名称ws2 = wb.create_sheet('Sheet2')#复制Sheet1,新sheet名称为Sheet1 Copyws3 = wb.copy_worksheet(wb['Sheet1'])#打印所有表名print(wb.sheetnames)#保存wb.save('1.xlsx')结果Excel内容如下:三、读取Excel数据读取上⾯创建的1.xlsx数据from openpyxl import Workbookfrom openpyxl import load_workbookwb = load_workbook('1.xlsx')#猜测格式类型wb.guess_types = Truews1 = wb.activeprint('总⾏数', ws1.max_row)print('总列数', ws1.max_column)print('---获取单个单元格的值---')print(ws1['A1'].value)print(ws1[1][0].value) #这⾥也是A1值,⾏索引从1、列索引从0算起print('---获取单列的所有值---')for cell in ws1['A']:print(cell.value)print('---获取多列的值(通过切⽚)---')#如果范围⽐实际⼤,如实际只有AB两列,指定A:B,则获取结果返回None,并且C列会被后⾯.columns和.rows获取到for column in ws1['A:B']:for cell in column:print(cell.value)print('---获取所有列的值---')for column in ws1.columns: #也可⽤ws1.iter_cols()for cell in column:print(cell.value)print('---获取某⾏的值---')for cell in ws1[1]:print(cell.value)print('---获取多⾏的值(通过切⽚)---')for row in ws1[1:2]:for cell in row:print(cell.value)print('---获取所有⾏的值---')for row in ws1.rows: #也可⽤ws1.iter_rows() for cell in row:print(cell.value)。

python中openpyxl的用法

python中openpyxl的用法

python中openpyxl的用法Python是一种高级编程语言,它可以用于各种各样的任务,包括数据处理和分析。

在数据处理和分析中,Excel是一个非常常见的工具。

Python中的openpyxl库提供了一种方便的方法来读取和写入Excel文件。

openpyxl是一个Python库,它可以用于读取和写入Excel文件。

它支持Excel 2010及以上版本的.xlsx文件。

openpyxl库提供了一种方便的方法来读取和写入Excel文件,它可以帮助我们轻松地处理大量的数据。

在使用openpyxl库之前,我们需要先安装它。

可以使用pip命令来安装openpyxl库。

在命令行中输入以下命令即可:pip install openpyxl安装完成后,我们就可以开始使用openpyxl库了。

读取Excel文件使用openpyxl库读取Excel文件非常简单。

我们只需要使用load_workbook()函数来加载Excel文件,然后使用active属性来获取当前活动的工作表。

例如,以下代码可以读取名为“Sheet1”的工作表:from openpyxl import load_workbookworkbook = load_workbook(filename="example.xlsx")sheet = workbook.active现在,我们可以使用sheet变量来访问工作表中的单元格。

例如,以下代码可以读取A1单元格中的值:value = sheet["A1"].value我们也可以使用cell()函数来访问单元格。

例如,以下代码可以读取B2单元格中的值:value = sheet.cell(row=2, column=2).value写入Excel文件使用openpyxl库写入Excel文件也非常简单。

我们只需要使用load_workbook()函数来加载Excel文件,然后使用active属性来获取当前活动的工作表。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

pip install openpyxl(写,支持xlsx格式)
新建文件
#1.新建一个Excel
wb=workbook.Workbook()
#2.创建表单的方法 创建一个自定义的表单
wb.create_sheet('info',index=0)
#3.另存为 保存工作簿
wb.save('D:\excel\pythonexcel.xlsx')
打开文件写入
#1.打开的工作簿
wb=load_workbook(filename)
#2.定位到表单
sheet=wb['info']
#3.cell(I行,J列),必须从1开始
sheet.cell(1,1).value='姓名'
#4.保存工作簿
wb.save('D:\excel\pythonexcel.xlsx')
源码
#!/usr/bin/python3
# encoding:utf‐8
import os
from openpyxl import workbook
from openpyxl import load_workbook
'''
支持xlsx格式写
'''
class excel():
def wirteExcle(self,filename,data):
#新建一个Excel
wb=workbook.Workbook()
#创建表单的方法 创建一个自定义的表单
wb.create_sheet('info',index=0)
#另存为 保存工作簿
wb.save(filename)
#打开的工作簿
wb=load_workbook(filename)
#定位到表单
sheet=wb['info']
c=1
for students in data:
#3.标题cell(i行,j列),必须1开始
sheet.cell(1,1).value='姓名'
sheet.cell(1,2).value='年龄'
#内容(行,列,值)第一行=0,第一列=0
sheet.cell(c,1).value=students['name'] sheet.cell(c,2).value=students['age'] c+=1
#将工作簿以filename命名并保存
wb.save(filename)
#5.关闭文件
wb.close()
if __name__=='__main__':
str= [{'name':'zhangshan','age':19},
{'name':'lisi','age':28},
{'name':'wangwu','age':59}]
exl = excel()
exl.wirteExcle('D:\excel\pythonexcel.xlsx',str) 打印execel内容。

相关文档
最新文档