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

您的位置:首頁技術文章
文章詳情頁

Python xlrd/xlwt 創建excel文件及常用操作

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

一、創建excel代碼

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

'''-*- 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:默認列寬 header_list = [ [’序號’], # 表格第0列[此列表頭名稱] [’姓名’], [’性別’], [’愛好’], [’生日’] ] 例2:自定義列寬(列寬值為int類型 英文字符長度 如:10 表示列寬為10個英文字符長度) header = [ [’序號’, 5], # 表格第0列[此列表頭名稱,列寬] [’姓名’, 10], # 表格第1列[此列表頭名稱,列寬] [’性別’, 10], [’愛好’, 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): ''' 寫入數據 :param out_file: 保存文件(如:test.xlsx) :param data_body: data_body[0]為表格第0行數據 data_body[0][0]為表格第0行第0列單元格值 :param sheet_name: :param frozen_row: 凍結行(默認首行) :param frozen_col: 凍結列(默認不凍結) ''' # step1 判斷數據正確性(每行列數是否與表頭相同) count = 0 for pro in data_body: if len(pro) != len(self.data): raise Exception( ’data_body數據錯誤 第{}行(從0開始) 需為{}個元素 當前行{}個元素:{}’.format(count, len(self.data), len(pro), str(pro))) count += 1 # step2 寫入數據 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’ # 設置單元格背景色為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: # 默認列寬 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) # 設置列寬 sheet.col(self.data.index(col)).width = 256 * col[1] # 256為基數 * n個英文字符 # 行高(第0行) sheet.row(0).height_mismatch = True sheet.row(0).height = 20 * 20 # 20為基數 * 20榜 # 表體 index = 1 for pro in data_body: sheet.row(index).height_mismatch = True sheet.row(index).height = 20 * 20 # 20為基數 * 20榜 for d in self.data: value = pro[self.data.index(d)] # 若值類型是int、float 直接寫入 反之 轉成字符串寫入 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 # 凍結(列與行) sheet.set_panes_frozen(’1’) sheet.set_horz_split_pos(frozen_row) # 凍結前n行 sheet.set_vert_split_pos(frozen_col) # 凍結前n列 wd.save(out_file) def color_test(self): ''' 測試顏色 ''' 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]) # 設置單元格背景色為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為基數 * n個英文字符 index += 1 wd.save(’顏色測試.xlsx’)# 測試顏色# if __name__ == ’__main__’:# header_t = [# [’顏色’]# ]# JarExcelUtil(header_t).color_test()if __name__ == ’__main__’: header = [ [’序號’, 5], [’姓名’, 10], [’性別’, 10], [’愛好’, 10], [’生日’, 20] ] # header = [ # [’序號’], # [’姓名’], # [’性別’], # [’愛好’], # [’生日’] # ] body = [ [1, ’張三’, ’男’, ’籃球’, ’1994-07-23’], [2, ’李四’, ’女’, ’足球’, ’1994-04-03’], [3, ’王五’, ’男’, ’兵乓球’, ’1994-09-13’] ] JarExcelUtil(header_list=header).write(out_file=’測試.xlsx’, data_body=body)

二、效果

生成的Excel

Python xlrd/xlwt 創建excel文件及常用操作

三、常用操作

3.1、設置行高

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

3.2、設置列寬

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

3.3、凍結(列與行)

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

3.4、設置單元格對齊方式

# 方式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、設置單元格背景色

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

以上就是Python xlrd/xlwt 創建excel文件及常用操作的詳細內容,更多關于python 操作excel的資料請關注好吧啦網其它相關文章!

標簽: python
相關文章:
主站蜘蛛池模板: 工业车间焊接-整体|集中除尘设备-激光|等离子切割机配套除尘-粉尘烟尘净化治理厂家-山东美蓝环保科技有限公司 | OpenI 启智 新一代人工智能开源开放平台| 水平垂直燃烧试验仪-灼热丝试验仪-漏电起痕试验仪-针焰试验仪-塑料材料燃烧检测设备-IP防水试验机 | 全自动定氮仪-半自动凯氏定氮仪厂家-祎鸿仪器 | 膜结构_ETFE膜结构_膜结构厂家_膜结构设计-深圳市烨兴智能空间技术有限公司 | 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 - 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 浙江寺庙设计-杭州寺院设计-宁波寺庙规划_汉匠 | 金库门,金库房,金库门厂家,金库门价格-河北特旺柜业有限公司 | 扬尘在线监测系统_工地噪声扬尘检测仪_扬尘监测系统_贝塔射线扬尘监测设备「风途物联网科技」 | 超声骨密度仪,双能X射线骨密度仪【起草单位】,骨密度检测仪厂家 - 品源医疗(江苏)有限公司 | 合同书格式和范文_合同书样本模板_电子版合同,找范文吧 | 爆破器材运输车|烟花爆竹运输车|1-9类危险品厢式运输车|湖北江南专用特种汽车有限公司 | 语料库-提供经典范文,文案句子,常用文书,您的写作得力助手 | 影像测量仪_三坐标测量机_一键式二次元_全自动影像测量仪-广东妙机精密科技股份有限公司 | 河南砖机首页-全自动液压免烧砖机,小型砌块水泥砖机厂家[十年老厂] | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 国产频谱分析仪-国产网络分析仪-上海坚融实业有限公司 | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 | 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 瑞典Blueair空气净化器租赁服务中心-专注新装修办公室除醛去异味服务! | 新疆乌鲁木齐网站建设-乌鲁木齐网站制作设计-新疆远璨网络 | 雷冲击高压发生器-水内冷直流高压发生器-串联谐振分压器-武汉特高压电力科技有限公司 | 高尔夫球杆_高尔夫果岭_高尔夫用品-深圳市新高品体育用品有限公司 | 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | 震动筛选机|震动分筛机|筛粉机|振筛机|振荡筛-振动筛分设备专业生产厂家高服机械 | 电镀标牌_电铸标牌_金属标贴_不锈钢标牌厂家_深圳市宝利丰精密科技有限公司 | 外贮压-柜式-悬挂式-七氟丙烷-灭火器-灭火系统-药剂-价格-厂家-IG541-混合气体-贮压-非贮压-超细干粉-自动-灭火装置-气体灭火设备-探火管灭火厂家-东莞汇建消防科技有限公司 | 日本东丽膜_反渗透膜_RO膜价格_超滤膜_纳滤膜-北京东丽阳光官网 日本细胞免疫疗法_肿瘤免疫治疗_NK细胞疗法 - 免疫密码 | 烽火安全网_加密软件、神盾软件官网| 高硼硅玻璃|水位计玻璃板|光学三棱镜-邯郸奥维玻璃科技有限公司 高温高压釜(氢化反应釜)百科 | 江苏密集柜_电动_手动_移动_盛隆柜业江苏档案密集柜厂家 | 洛阳永磁工业大吊扇研发生产-工厂通风降温解决方案提供商-中实洛阳环境科技有限公司 | 膜结构_ETFE膜结构_膜结构厂家_膜结构设计-深圳市烨兴智能空间技术有限公司 | 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | 灌装封尾机_胶水灌装机_软管灌装封尾机_无锡和博自动化机械制造有限公司 | 拖链电缆_柔性电缆_伺服电缆_坦克链电缆-深圳市顺电工业电缆有限公司 | 动物麻醉机-数显脑立体定位仪-北京易则佳科技有限公司 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 |