python写出XLSX
python与xlsxwriter
- python与xlsxwriter
- 1.准备阶段:
- 2.细嚼慢咽
- 创建Excel文件
- 创建工作表sheet
- 设置工作表
- 1.设置列宽
- 2.定义格式
- 3.按行写出代码
- 3.完整代码
- python与openpyxl
- 1.准备阶段:
- 2.细嚼慢咽
- 导入已有的excel:load_workbook()
- 查看所有sheetname:get_sheet_names()
- 删除sheet表:del
- 获取某sheet表:get_sheet_by_name
- 创建sheet表:create_sheet()
- 设置列宽
- 对齐方式、自动换行,加边框,添加超链接
- 3.完整代码
python与xlsxwriter
1.准备阶段:
已准备好要写出的dataframe,worksheet.write_row()可以按行写出数据。(xlsxwriter的计数是从1开始的,行和列都是从1开始)
2.细嚼慢咽
创建Excel文件
workbook= xlsxwriter.Workbook()
创建工作表sheet
worksheet= workbook.add_worksheet()
- 查找字符串中的中文(写出到excel表中,中文比英文长一个单位)
re.findall(r’([\u2E80-\u9FFF]+)’,str(x))
设置工作表
1.设置列宽
worksheet.set_column(n,n,colwidth)
2.定义格式
先workbook.add_format()占位,然后把属性赋值它,需要用的时候,调用即可。
title_formatter = workbook.add_format()title_formatter.set_border(1)title_formatter.set_bg_color('#66CCFF')title_formatter.set_align('center')title_formatter.set_bold()
3.按行写出代码
worksheet.write_row(“A1”,数据list,formatter)
3.完整代码
import xlsxwriter
import re
def WriteCreditOn(credit_df,dataset,comp):"""输入:credit_df:格式dataframe,贷中最终的审批结果dataset:由dataframe表组成的list,单个贷中规则最终命中及权重comp:客户名称输出:贷中规则宽表"""####################### 首先做第一个sheet: 贷中最终审批结果_开始 ########################## credit_df = credit_df.fillna("")# 1. 创建一个Excel文件reportname = os.path.join(comp, comp +"_"+str(time.strftime("%Y%m%d")) + '_贷中规则命中情况.xlsx')workbook= xlsxwriter.Workbook(reportname,options={'nan_inf_to_errors': True})#创建一个excel文件# 2. 创建一个工作表sheet对象worksheet= workbook.add_worksheet(u'贷中最终审批结果')#在文件中创建一个名为TEST的sheet,不加名字默认为sheet1 # 3. 设置列宽# 中文字符比英文多一个长度# 设置每列的列宽 for n in range(credit_df.shape[1]):col = credit_df.columns.tolist()[n]colwidth = credit_df[col].apply(lambda x:len("".join(re.findall(r'([\u2E80-\u9FFF]+)',str(x))))+len(str(x))+2).max()worksheet.set_column(n,n,colwidth)# 4.定义标题栏格式对象:边框加粗1像素,背景色为蓝色,单元格内容居中、加粗title_formatter = workbook.add_format()title_formatter.set_border(1)title_formatter.set_bg_color('#66CCFF')title_formatter.set_align('center')title_formatter.set_bold() # 4.定义内容格式formatter = workbook.add_format()formatter.set_border(1)formatter.set_align("center")# 写入数据worksheet.write_row('A1',credit_df.columns.tolist(),title_formatter)worksheet.write_row('A2',credit_df.iloc[0,],title_formatter) for j in range(1,credit_df.shape[0]):worksheet.write_row('A{}'.format(j+2),credit_df.iloc[j,],formatter)####################### 首先做第一个sheet: 贷中最终审批结果_结束 ################################################# 再做后续sheet: 贷中明细宽表_开始 ########################## for i in range(len(dataset)): dataframe = dataset[i].fillna("")# 2. 创建一个工作表sheet对象sheetname = "贷中预警全量规则-"+dataframe["Rule_weight"][0][:-4]worksheet= workbook.add_worksheet(sheetname)#在文件中创建一个名为TEST的sheet,不加名字默认为sheet1# 3. 设置列宽# 中文字符比英文多一个长度# 设置每列的列宽 for n in range(dataframe.shape[1]):col = dataframe.columns.tolist()[n]colwidth = dataframe[col].apply(lambda x:len("".join(re.findall(r'([\u2E80-\u9FFF]+)',str(x))))+len(str(x))+2).max()worksheet.set_column(n,n,colwidth) # 写入数据worksheet.write_row('A1',dataframe.columns.tolist(),title_formatter)worksheet.write_row('A2',dataframe.iloc[0,],title_formatter) for j in range(1,dataframe.shape[0]):worksheet.write_row('A{}'.format(j+2),dataframe.iloc[j,],formatter) ####################### 再做后续sheet: 贷中明细宽表_结束 ##########################
python与openpyxl
- python与xlsxwriter
- 1.准备阶段:
- 2.细嚼慢咽
- 创建Excel文件
- 创建工作表sheet
- 设置工作表
- 1.设置列宽
- 2.定义格式
- 3.按行写出代码
- 3.完整代码
- python与openpyxl
- 1.准备阶段:
- 2.细嚼慢咽
- 导入已有的excel:load_workbook()
- 查看所有sheetname:get_sheet_names()
- 删除sheet表:del
- 获取某sheet表:get_sheet_by_name
- 创建sheet表:create_sheet()
- 设置列宽
- 对齐方式、自动换行,加边框,添加超链接
- 3.完整代码
python与openpyxl
1.准备阶段:
已有一个excel,对该excel进行处理
2.细嚼慢咽
导入已有的excel:load_workbook()
pro_file = openpyxl.load_workbook() #导入
查看所有sheetname:get_sheet_names()
sheetnames = pro_file.get_sheet_names() #查看所有sheetname
删除sheet表:del
del pro_file[sheet]
获取某sheet表:get_sheet_by_name
sheet1=pro_file.get_sheet_by_name(“产品列表”)
创建sheet表:create_sheet()
pro_file.create_sheet(“del”,0) #开头创建第一张sheet:del
设置列宽
sheet.column_dimensions[‘A’].width = 14.0
对齐方式、自动换行,加边框,添加超链接
(见完整代码)
3.完整代码
import openpyxl
from openpyxl import Workbook
# 导入字体、边框、颜色以及对齐方式相关库
from openpyxl.styles import Font, Border, Side, PatternFill, Color, colors, Alignment
import time
import os
import pandas as pddef dict_output(prd_document_file,hit_info,comp):"""文档说明:生成数据字典输入:prd_document_file:产品文档xlsx的文件名,第一页是“产品列表”sheet,后面的sheet是对应产品的英文名+版本号,例如“ApplyLoanStrV2.0”hit_info:测试的产品、版本、对应的文件comp:公司名输出:生成测试的数据字典"""pro_file = openpyxl.load_workbook(os.path.join("辅助文档", prd_document_file))keepsheet,index_row,noting = keepsheets(prd_document_file,hit_info) sheetnames = pro_file.get_sheet_names() #查看所有sheetname################### 删除没测试产品字典 ################### lst = []for sheet in sheetnames:if sheet.lower() not in keepsheet:lst.append(sheet)del pro_file[sheet] #删除不需要的sheet表################### 处理“产品列表”sheet页 ##################### 原始产品列表sheet1=pro_file.get_sheet_by_name("产品列表") max_row=sheet1.max_row#最大行数max_column=sheet1.max_column#最大列数## 生成空sheet页:del,将原始产品列表进行处理到del中,最后删除原始“产品列表”,将del更名为“产品列表”pro_file.create_sheet("del",0)sheet = pro_file.get_sheet_by_name("del") ## 设置del页格式:列宽,首行加粗### 设置列宽 sheet.column_dimensions['A'].width = 14.0sheet.column_dimensions['B'].width = 32.0sheet.column_dimensions['C'].width = 23.0sheet.column_dimensions['D'].width = 6.0sheet.column_dimensions['E'].width = 10.0sheet.column_dimensions['F'].width = 12.0sheet.column_dimensions['G'].width = 65.0sheet.column_dimensions['H'].width = 100.0 ### 水平居中align = Alignment(horizontal='center', vertical='center',wrap_text=True)### 加边框,首先设置边框四个方向的线条种类left, right, top, bottom = [Side(style='thin', color='000000')] * 4# 再将各方向线条作为参数传入Border方法borders = Border(left=left, right=right, top=top, bottom=bottom)### 首行加粗sheet['A1'].font = Font(name='Times New Roman', bold=True)sheet['B1'].font = Font(name='Times New Roman', bold=True)sheet['C1'].font = Font(name='Times New Roman', bold=True)sheet['D1'].font = Font(name='Times New Roman', bold=True)sheet['E1'].font = Font(name='Times New Roman', bold=True)sheet['F1'].font = Font(name='Times New Roman', bold=True)sheet['G1'].font = Font(name='Times New Roman', bold=True)sheet['H1'].font = Font(name='Times New Roman', bold=True)sheet['I1'].font = Font(name='Times New Roman', bold=True) ### 给sheet添加超链接 for l,m in enumerate(index_row):for n in range(97,97+max_column):# l是sheet1n=chr(n)#ASCII字符i='%s%d'%(n,m)#单元格编号j='%s%d'%(n,l+1)cell1=sheet1[i].value#获取sheet1单元格数据if n=='c' and l>0:link = sheet1['%s%d'%("d",m)].value + sheet1['%s%d'%("e",m)].valuesheet[j].value='=HYPERLINK("#{}!A1","{}")'.format(link,cell1) #赋值到sheet单元格sheet[j].font = Font(underline='single', color='0563C1') #添加超链接格式sheet[j].alignment = alignsheet[j].border = borders else:sheet[j].value=cell1 #赋值到sheet单元格sheet[j].alignment = alignsheet[j].border = borders ### 给sheet说明列设置对齐方式for describ_h in range(max_row): sheet["I{}".format(describ_h+2)].alignment = Alignment(horizontal='left', vertical='center',wrap_text=True) ### 如果测试了“申请信息评估”、“稳定性指数”则增加说明 if len(noting)>0:sheet['%s%d'%("C",l+3)].value='=HYPERLINK("#{}!A1","{}")'.format("字段说明表",noting)sheet['%s%d'%("C",l+3)].font = Font(underline='single', color='0563C1') #添加超链接格式 sheet.delete_cols(1) del pro_file["产品列表"]sheet.title = "产品列表"######################### 保存处理好的文件生成本地xlsx #################################save_path = os.path.join(comp,'详细匹配数据及字典', comp +"_"+str(time.strftime("%Y%m%d")) + '_测试产品数据字典.xlsx')pro_file.save(save_path)
python写出XLSX相关推荐
- r语言 python 股票_python r语言 股票!如何用python写出爬虫?
python计时器问题? import time print('按下回车开始,按下 Ctrl C 暂停/停止计时.') while True: input("") starttim ...
- python编写程序输出诗句_RPA交流——使用 python 写出诗一样的代码 (一)
原标题:RPA交流--使用 python 写出诗一样的代码 (一) 下载RPA请访问:www.i-search.com.cn 学习RPA请访问:https://support.i-search.com ...
- python写出的程序如何给别人使用-涨姿势!这些小技巧让小白也可以写出更优雅的Python代码!...
原标题:涨姿势!这些小技巧让小白也可以写出更优雅的Python代码! 一.前言 我前两天回答了两个Python相关的问题,收到了很多赞,从答案被收藏的情况来看,确实对不少人都很有帮助,所以我也很开心. ...
- python写出的程序如何给别人使用-python如何写出表白程序
用python编表白程序的方法: 1.创建GUI窗口,实现代码的调用. 2.编写点击触发函数,实现表白程序. 具体代码如下:from tkinter import * from tkinter imp ...
- 怎么用Python写出随时间变化的字_面试必备 | 带你彻底搞懂 Python 生成器
文章转载地址:面试必备 | 带你彻底搞懂 Python 生成器. 写在之前 Python 的高级语言特性一直是我们学习 Python 的一个难点,大部分人并没有做到熟练的掌握,甚至去学习它都感觉很困难 ...
- 怎么用Python写出随时间变化的字_Python爬虫实战,AcFun弹幕视频网 - 长情且温柔
CSDN个人主页: 高智商白痴原文地址: 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更 ...
- 怎么用Python写出随时间变化的字_如果只推荐一本 Python 进阶书籍,我要 Pick 它!...
本文作者:豌豆花下猫,来源:Python猫 今年二月初,我偶然看到了一条推特: <流畅的Python>一书的作者发布了一条激动人心的消息:他正在写作第二版! 如果要票选最佳的 Python ...
- 用Python写出Gameboy模拟器,还能训练AI模型:丹麦小哥的大学项目火了
视学算法分享 来源 | 机器之心 [导读]感觉用 Atari 游戏研究人工智能有点「不够接地气」?现在我们可以使用 Gameboy 模拟器了. 对于很多 80 后.90 后来说,任天堂 Gam ...
- python写出的程序如何给别人使用-如何用PYTHON代码写出音乐
什么是MIDI 博主本人虽然五音不全,而且唱歌还很难听,但是还是非常喜欢听歌的.我一直在做这样的尝试,就是通过人工智能算法实现机器自动的作词和编曲(在这里预告下,通过深度学习写歌词已经实现了,之后会分 ...
最新文章
- BZOJ-1878: [SDOI2009]HH的项链(莫队算法)
- 快速连续点击两次出现相同内容的解决方法
- Java黑皮书课后题第4章:*4.9(给出字符的Unicode码)编写程序,得到一个字符的输入,然后显示其Unicode值
- 第二代计算机网络主要贡献,2010级计算机网络试题
- [CODEVS 1036]商务旅行
- 机器学习面试题之LR
- springboot11 模板引擎
- Mysql uploader File
- 解决JSON页面乱码
- 还不会用 Python 提取 PDF 表格?三种类型数据,轻松转换成 Excel
- WINDOWS 7、windows server 2008、VISTA激活排斥
- antd4.0中Form使用initialValue
- TAGE预测器 “A case for (partially) TAgged GEometric history length branch prediction”
- HDOJ 5620-KK's Steel【斐波那契数列】
- 机器人出魔切还是三相_UZI卡莎五分钟魔切,绝境四杀带领队伍走向胜利?观众:永远滴神...
- 六十二、Qt+Sqlserver 操作数类型冲突: varbinary 与 float 不兼容
- QML 之 real 数据保留小数点后两位
- 大象声科在联想YOGA Pro 14s的方案概要 和 intel GAN初见
- Python 包(package)
- 什么叫黑链-SEO zuobi手法解析