电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python xlrd/xlwt 創(chuàng)建excel文件及常用操作

瀏覽:13日期:2022-07-10 09:57:12

一、創(chuàng)建excel代碼

備注:封裝好了(可直接調(diào)用)

'''-*- coding:utf-8 -*-@Time :2020/8/20 21:02@Author :Jarvis@File :jar_excel_util.py@Version:1.0'''from typing import Listimport xlwtclass JarExcelUtil: def __init__(self, header_list: List[list]): ''' :param header_list: 如下格式 例1:默認(rèn)列寬 header_list = [ [’序號(hào)’], # 表格第0列[此列表頭名稱] [’姓名’], [’性別’], [’愛(ài)好’], [’生日’] ] 例2:自定義列寬(列寬值為int類型 英文字符長(zhǎng)度 如:10 表示列寬為10個(gè)英文字符長(zhǎng)度) header = [ [’序號(hào)’, 5], # 表格第0列[此列表頭名稱,列寬] [’姓名’, 10], # 表格第1列[此列表頭名稱,列寬] [’性別’, 10], [’愛(ài)好’, 10], [’生日’, 20] ] ''' self.data = header_list self.__color_str = ’aqua 0x31rnblack 0x08rnblue 0x0Crnblue_gray 0x36rnbright_green 0x0Brnbrown 0x3Crncoral 0x1Drncyan_ega 0x0Frndark_blue 0x12rndark_blue_ega 0x12rndark_green 0x3Arndark_green_ega 0x11rndark_purple 0x1Crndark_red 0x10rndark_red_ega 0x10rndark_teal 0x38rndark_yellow 0x13rngold 0x33rngray_ega 0x17rngray25 0x16rngray40 0x37rngray50 0x17rngray80 0x3Frngreen 0x11rnice_blue 0x1Frnindigo 0x3Ernivory 0x1Arnlavender 0x2Ernlight_blue 0x30rnlight_green 0x2Arnlight_orange 0x34rnlight_turquoise 0x29rnlight_yellow 0x2Brnlime 0x32rnmagenta_ega 0x0Ernocean_blue 0x1Ernolive_ega 0x13rnolive_green 0x3Brnorange 0x35rnpale_blue 0x2Crnperiwinkle 0x18rnpink 0x0Ernplum 0x3Drnpurple_ega 0x14rnred 0x0Arnrose 0x2Drnsea_green 0x39rnsilver_ega 0x16rnsky_blue 0x28rntan 0x2Frnteal 0x15rnteal_ega 0x15rnturquoise 0x0Frnviolet 0x14rnwhite 0x09rnyellow 0x0D’ self.color_list = [] # [[]] [[’aqua’, ’0x31’], [’black’, ’0x08’], ...] for color in self.__color_str.split(’rn’): color = color.split(’ ’) self.color_list.append(color) def write(self, out_file, data_body: List[list], sheet_name=’sheet’, frozen_row: int = 1, frozen_col: int = 0): ''' 寫入數(shù)據(jù) :param out_file: 保存文件(如:test.xlsx) :param data_body: data_body[0]為表格第0行數(shù)據(jù) data_body[0][0]為表格第0行第0列單元格值 :param sheet_name: :param frozen_row: 凍結(jié)行(默認(rèn)首行) :param frozen_col: 凍結(jié)列(默認(rèn)不凍結(jié)) ''' # step1 判斷數(shù)據(jù)正確性(每行列數(shù)是否與表頭相同) count = 0 for pro in data_body: if len(pro) != len(self.data): raise Exception( ’data_body數(shù)據(jù)錯(cuò)誤 第{}行(從0開(kāi)始) 需為{}個(gè)元素 當(dāng)前行{}個(gè)元素:{}’.format(count, len(self.data), len(pro), str(pro))) count += 1 # step2 寫入數(shù)據(jù) wd = xlwt.Workbook() sheet = wd.add_sheet(sheet_name) ali_horiz = ’align: horiz center’ # 水平居中 ali_vert = ’align: vert center’ # 垂直居中 fore_colour = ’pattern: pattern solid,fore_colour pale_blue’ # 設(shè)置單元格背景色為pale_blue色 # 表頭格式(垂直+水平居中、表頭背景色) style_header = xlwt.easyxf(’{};{};{}’.format(fore_colour, ali_horiz, ali_vert)) # 表體格式(垂直居中) style_body = xlwt.easyxf(’{}’.format(ali_vert)) # 表頭 for col in self.data: # 默認(rèn)列寬 if len(col) == 1: sheet.write(0, self.data.index(col), str(col[0]), style_header) # 自定義列寬 if len(col) == 2: sheet.write(0, self.data.index(col), str(col[0]), style_header) # 設(shè)置列寬 sheet.col(self.data.index(col)).width = 256 * col[1] # 256為基數(shù) * n個(gè)英文字符 # 行高(第0行) sheet.row(0).height_mismatch = True sheet.row(0).height = 20 * 20 # 20為基數(shù) * 20榜 # 表體 index = 1 for pro in data_body: sheet.row(index).height_mismatch = True sheet.row(index).height = 20 * 20 # 20為基數(shù) * 20榜 for d in self.data: value = pro[self.data.index(d)] # 若值類型是int、float 直接寫入 反之 轉(zhuǎn)成字符串寫入 if type(value) == int or type(value) == float: sheet.write(index, self.data.index(d), value, style_body) else: sheet.write(index, self.data.index(d), str(value), style_body) index += 1 # 凍結(jié)(列與行) sheet.set_panes_frozen(’1’) sheet.set_horz_split_pos(frozen_row) # 凍結(jié)前n行 sheet.set_vert_split_pos(frozen_col) # 凍結(jié)前n列 wd.save(out_file) def color_test(self): ''' 測(cè)試顏色 ''' body_t = [] for color in self.color_list: print(color) body_t.append(color) wd = xlwt.Workbook() sheet = wd.add_sheet(’sheet’) index = 0 for b in body_t: ali = ’align: horiz center;align: vert center’ # 垂直居中 水平居中 fore_colour = ’pattern: pattern solid,fore_colour {}’.format( self.color_list[index][0]) # 設(shè)置單元格背景色為pale_blue色 style_header = xlwt.easyxf( ’{};{}’.format(fore_colour, ali)) sheet.write(index, 0, str(b), style_header) sheet.col(0).width = 256 * 150 # 256為基數(shù) * n個(gè)英文字符 index += 1 wd.save(’顏色測(cè)試.xlsx’)# 測(cè)試顏色# if __name__ == ’__main__’:# header_t = [# [’顏色’]# ]# JarExcelUtil(header_t).color_test()if __name__ == ’__main__’: header = [ [’序號(hào)’, 5], [’姓名’, 10], [’性別’, 10], [’愛(ài)好’, 10], [’生日’, 20] ] # header = [ # [’序號(hào)’], # [’姓名’], # [’性別’], # [’愛(ài)好’], # [’生日’] # ] body = [ [1, ’張三’, ’男’, ’籃球’, ’1994-07-23’], [2, ’李四’, ’女’, ’足球’, ’1994-04-03’], [3, ’王五’, ’男’, ’兵乓球’, ’1994-09-13’] ] JarExcelUtil(header_list=header).write(out_file=’測(cè)試.xlsx’, data_body=body)

二、效果

生成的Excel

Python xlrd/xlwt 創(chuàng)建excel文件及常用操作

三、常用操作

3.1、設(shè)置行高

# 行高(第0行)sheet.row(0).height_mismatch = Truesheet.row(0).height = 20 * 20 # 20為基數(shù) * 20榜

3.2、設(shè)置列寬

# 列寬(第0列)sheet.col(0).width = 256 * 30 # 256為基數(shù) * 30個(gè)英文字符(約)

3.3、凍結(jié)(列與行)

# 凍結(jié)(列與行)sheet.set_panes_frozen(’1’)sheet.set_horz_split_pos(2) # 凍結(jié)前2行sheet.set_vert_split_pos(3) # 凍結(jié)前3列 # 凍結(jié)首行sheet.set_panes_frozen(’1’)sheet.set_horz_split_pos(1) # 凍結(jié)前1行(即首行)

3.4、設(shè)置單元格對(duì)齊方式

# 方式1style_1 = xlwt.XFStyle()al_1 = xlwt.Alignment()al_1.horz = xlwt.Alignment.HORZ_CENTER # 水平居中al_1.vert = xlwt.Alignment.VERT_CENTER # 垂直居中style_1.alignment = al_1sheet.write(0, 0, ’第0行第0列單元格值’, style_1) # 方式2(推薦)ali_horiz = ’align: horiz center’ # 水平居中ali_vert = ’align: vert center’ # 垂直居中style_2 = xlwt.easyxf(’{};{}’.format(ali_horiz, ali_vert))sheet.write(0, 0, ’第0行第0列單元格值’, style_2)

3.5、設(shè)置單元格背景色

# 設(shè)置單元格背景色fore_colour = ’pattern: pattern solid,fore_colour pale_blue’ # 設(shè)置單元格背景色為pale_blue色 (具體顏色值 參考上面代碼JarExcelUtil類中的color_test方法的運(yùn)行結(jié)果)style = xlwt.easyxf(’{}’.format(fore_colour))sheet.write(0, 0, ’第0行第0列單元格值’, style)

以上就是Python xlrd/xlwt 創(chuàng)建excel文件及常用操作的詳細(xì)內(nèi)容,更多關(guān)于python 操作excel的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: python
相關(guān)文章:
主站蜘蛛池模板: 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 福州仿石漆加盟_福建仿石漆厂家-外墙仿石漆加盟推荐铁壁金钢(福建)新材料科技有限公司有保障 | 自动部分收集器,进口无油隔膜真空泵,SPME固相微萃取头-上海楚定分析仪器有限公司 | 消泡剂-水处理消泡剂-涂料消泡剂-切削液消泡剂价格-东莞德丰消泡剂厂家 | 铝合金线槽_铝型材加工_空调挡水板厂家-江阴炜福金属制品有限公司 | 天津中都白癜风医院_天津白癜风医院_天津治疗白癜风 | sfp光模块,高速万兆光模块工厂-性价比更高的光纤模块制造商-武汉恒泰通 | 广东教师资格网-广东教师资格证考试网| 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 北京森语科技有限公司-模型制作专家-展览展示-沙盘模型设计制作-多媒体模型软硬件开发-三维地理信息交互沙盘 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | 定量包装秤,吨袋包装称,伸缩溜管,全自动包装秤,码垛机器人,无锡市邦尧机械工程有限公司 | 洗地机-全自动/手推式洗地机-扫地车厂家_扬子清洁设备 | 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 | 行星搅拌机,双行星搅拌机,动力混合机,无锡米克斯行星搅拌机生产厂家 | 宿松新闻网 宿松网|宿松在线|宿松门户|安徽宿松(直管县)|宿松新闻综合网站|宿松官方新闻发布 | 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 点胶机_点胶阀_自动点胶机_智能点胶机_喷胶机_点胶机厂家【欧力克斯】 | 高压负荷开关-苏州雷尔沃电器有限公司 | 地脚螺栓_材质_标准-永年县德联地脚螺栓厂家 | 杭州货架订做_组合货架公司_货位式货架_贯通式_重型仓储_工厂货架_货架销售厂家_杭州永诚货架有限公司 | 济南网站建设|济南建网站|济南网站建设公司【济南腾飞网络】【荐】 | 深圳市超时尚职业培训学校,培训:月嫂,育婴,养老,家政;化妆,美容,美发,美甲. | 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | 鼓风干燥箱_真空烘箱_高温干燥箱_恒温培养箱-上海笃特科学仪器 | 电采暖锅炉_超低温空气源热泵_空气源热水器-鑫鲁禹电锅炉空气能热泵厂家 | 展厅设计-展馆设计-专业企业展厅展馆设计公司-昆明华文创意 | 石家庄装修设计_室内家装设计_别墅装饰装修公司-石家庄金舍装饰官网 | 煤粉取样器-射油器-便携式等速飞灰取样器-连灵动 | 不锈钢水箱生产厂家_消防水箱生产厂家-河南联固供水设备有限公司 | 建筑资质代办_工程施工资质办理_资质代办公司_北京众聚企服 | 缝纫客| 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | 深圳APP开发公司_软件APP定制开发/外包制作-红匣子科技 | 网架支座@球铰支座@钢结构支座@成品支座厂家@万向滑动支座_桥兴工程橡胶有限公司 | cnc精密加工_数控机械加工_非标平键定制生产厂家_扬州沃佳机械有限公司 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 生物颗粒燃烧机-生物质燃烧机-热风炉-生物颗粒蒸汽发生器-丽水市久凯能源设备有限公司 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 窖井盖锯圆机_锯圆机金刚石锯片-无锡茂达金刚石有限公司 |