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相关推荐

  1. r语言 python 股票_python r语言 股票!如何用python写出爬虫?

    python计时器问题? import time print('按下回车开始,按下 Ctrl C 暂停/停止计时.') while True: input("") starttim ...

  2. python编写程序输出诗句_RPA交流——使用 python 写出诗一样的代码 (一)

    原标题:RPA交流--使用 python 写出诗一样的代码 (一) 下载RPA请访问:www.i-search.com.cn 学习RPA请访问:https://support.i-search.com ...

  3. python写出的程序如何给别人使用-涨姿势!这些小技巧让小白也可以写出更优雅的Python代码!...

    原标题:涨姿势!这些小技巧让小白也可以写出更优雅的Python代码! 一.前言 我前两天回答了两个Python相关的问题,收到了很多赞,从答案被收藏的情况来看,确实对不少人都很有帮助,所以我也很开心. ...

  4. python写出的程序如何给别人使用-python如何写出表白程序

    用python编表白程序的方法: 1.创建GUI窗口,实现代码的调用. 2.编写点击触发函数,实现表白程序. 具体代码如下:from tkinter import * from tkinter imp ...

  5. 怎么用Python写出随时间变化的字_面试必备 | 带你彻底搞懂 Python 生成器

    文章转载地址:面试必备 | 带你彻底搞懂 Python 生成器. 写在之前 Python 的高级语言特性一直是我们学习 Python 的一个难点,大部分人并没有做到熟练的掌握,甚至去学习它都感觉很困难 ...

  6. 怎么用Python写出随时间变化的字_Python爬虫实战,AcFun弹幕视频网 - 长情且温柔

    ​ CSDN个人主页: 高智商白痴原文地址: 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更 ...

  7. 怎么用Python写出随时间变化的字_如果只推荐一本 Python 进阶书籍,我要 Pick 它!...

    本文作者:豌豆花下猫,来源:Python猫 今年二月初,我偶然看到了一条推特: <流畅的Python>一书的作者发布了一条激动人心的消息:他正在写作第二版! 如果要票选最佳的 Python ...

  8. 用Python写出Gameboy模拟器,还能训练AI模型:丹麦小哥的大学项目火了

      视学算法分享   来源 | 机器之心 [导读]感觉用 Atari 游戏研究人工智能有点「不够接地气」?现在我们可以使用 Gameboy 模拟器了. 对于很多 80 后.90 后来说,任天堂 Gam ...

  9. python写出的程序如何给别人使用-如何用PYTHON代码写出音乐

    什么是MIDI 博主本人虽然五音不全,而且唱歌还很难听,但是还是非常喜欢听歌的.我一直在做这样的尝试,就是通过人工智能算法实现机器自动的作词和编曲(在这里预告下,通过深度学习写歌词已经实现了,之后会分 ...

最新文章

  1. BZOJ-1878: [SDOI2009]HH的项链(莫队算法)
  2. 快速连续点击两次出现相同内容的解决方法
  3. Java黑皮书课后题第4章:*4.9(给出字符的Unicode码)编写程序,得到一个字符的输入,然后显示其Unicode值
  4. 第二代计算机网络主要贡献,2010级计算机网络试题
  5. [CODEVS 1036]商务旅行
  6. 机器学习面试题之LR
  7. springboot11 模板引擎
  8. Mysql uploader File
  9. 解决JSON页面乱码
  10. 还不会用 Python 提取 PDF 表格?三种类型数据,轻松转换成 Excel
  11. WINDOWS 7、windows server 2008、VISTA激活排斥
  12. antd4.0中Form使用initialValue
  13. TAGE预测器 “A case for (partially) TAgged GEometric history length branch prediction”
  14. HDOJ 5620-KK's Steel【斐波那契数列】
  15. 机器人出魔切还是三相_UZI卡莎五分钟魔切,绝境四杀带领队伍走向胜利?观众:永远滴神...
  16. 六十二、Qt+Sqlserver 操作数类型冲突: varbinary 与 float 不兼容
  17. QML 之 real 数据保留小数点后两位
  18. 大象声科在联想YOGA Pro 14s的方案概要 和 intel GAN初见
  19. Python 包(package)
  20. 什么叫黑链-SEO zuobi手法解析

热门文章

  1. java哪些超类_java – 超类常用方法实现
  2. Kafka学习记录(三)——Broker
  3. AJAX问题之XMLHttpRequest status = 0
  4. visual studio软件破解方法
  5. spring之注解(二)Autowired
  6. 图像颜色迁移专题介绍(三): Deep Examplar-based Colorization
  7. 【HDU】3271 SNIBB 数位DP
  8. 最牛销售:把好处说够,把痛苦说透
  9. 当AIGC遇见灌篮高手,一秒钟让动漫/艺术人物在虚拟世界中重现
  10. OvO多分类策略简述