问题描述

Pandas 输出Excel的方式有许多种,最常见方式如下

data.to_excel('filename.xlsx')

但是输出的xlsx文件看起来略丑,还需要进行二次调整,效率低下

解决方案

通过xlsxwriter编写函数进行输出,特性如下:

  • xlsxwriter 是所有Excel处理的package里写入速度最快的
  • 不需要依赖其他软件(xlswings依赖Excel程序)

代码实现

import numpy as np
import pandas as pd# 输出函数
def file_write(data, out_file):'''input(data, out_file):数据(dataFrame),写入文件路径output(file.xlsx)'''import xlsxwriterwb = xlsxwriter.Workbook(out_file)ws = wb.add_worksheet('Sheet1')data = data.replace(np.NaN, '') # Nan(float) 无法写入,替换成 ''(str)# 使用 xlsxwriter.utility.xl_col_to_name() 将最后一列转换为Excel列字母name = 'A:' + xlsxwriter.utility.xl_col_to_name(data.shape[1]-1) # A:N(最后一列)# 标题格式设置header_format = wb.add_format({'bold': True,# 加粗'valign': 'vcenter', # 垂直居中'text_wrap': True, # 自动换行'font_name': '微软雅黑', # 字体名称'font_size': 9, # 字体大小'border': 1 # 单元格边框}) # 表格区域格式设置text_format = wb.add_format({'valign':'vcenter', # 垂直居中'font_name': '微软雅黑', # 字体名称'font_size': 8, # 字体大小'border': 1 # 单元格边框})# 寫入標題for col_num, value in enumerate(data.columns.values):ws.write(0, col_num, value, header_format)# 寫入数据(row, col) = data.shapefor i in range(row):for j in range(col):ws.write(i+1, j, data.iloc[i, j], text_format) # 第1行留空(标题)#添加飾選器(max_row, max_col)= data.shapews.autofilter(0, 0, max_row, max_col - 1)# 設置行高為 28.5 ws.set_row(0, 28.5) # 從第 0 行開始·行高為 28.5ws.set_column(name ,12) # 設置A:N列宽为 12.0wb.close()# 写入数据到xlsx文件
data = pd.DataFrame({'小老鼠':[0, 1, 2], '小松鼠':[3, 4, 5], '北巷的猫猫的猫猫的猫猫':[8, 9, 10]})
outfile = r'C:\Users\BXDM\Desktop\out.xlsx' # 文件输出路径
file_write(data, outfile)

效果展示

  • 实现表格标题加粗
  • 改变原有标题和表格区域的单元格格式
  • 有数据的区域添加表格边框
  • 添加筛选
  • 表格标题自动换行
  • 统一表格列宽

参考资料

Convert spreadsheet number to column letter
Creating Excel files with Python and XlsxWriter(官网)
Thick border in xlsxwriter

xlsxwriter写入Excel相关推荐

  1. Unity3D研究院之在MAC上脚本XlsxWriter写入Excel .xlsx格式

    原地址:http://www.xuanyusong.com/archives/3011 以前找了很久可以跨平台支持读写Excel的工具,我也试了很多种DLL.可在Windows上各个完美支持,可是在M ...

  2. xlsxwriter写行合并_XlsxWriter写入excel文件

    XlsxWriter写入excel文件 唐黎琦 [摘要] 在日常开发中,我们经常会遇到需要将数据导出为excel的场景,XlsxWriter作为专门写入excel文件的python库,对excel文件 ...

  3. xlsxwriter写行合并_使用xlsxwriter将pandas数据框写入excel并包含“write-rich”字符串格式...

    以下是可复制的,并产生所需的输出. import xlsxwriter, pandas as pd workbook = xlsxwriter.Workbook('pandas_with_rich_s ...

  4. python写入excel表格数据绘制图表_(原创)xlsxwriter,python excel 写入数据\图表等操作_图表操作(二)...

    前面分享了使用xlsxwriter创建excel和写入数据GUC:(原创)xlsxwriter,python excel 写入数据\图表等操作_创建.写入(一)​zhuanlan.zhihu.com ...

  5. python 循环写入excel sheet_python 使用xlsxwriter循环向excel中插入数据和图片的操作...

    写入Excel中后有显示第一列客户款号总库存这些,开始写在第12行第一列开始写入,一行写入5个,然后再隔12行,再写入下边的数据,图片需要对应客户款号在Excel写入图片,类似下面的格式 import ...

  6. 如何使用xlsxwriter 写入数据到xlsx excel 设置边框实线连续内存模式

    设置边框实线 cell_format = workbook.add_format({'border':1})worksheet.conditional_format('A1:XFD1048576', ...

  7. Python将MySQL表数据写入excel

    背景:将mysql表查询结果写入excel. 1.使用sqlyog工具将查询结果导出到Excel.xml中,用excel打开发现:因为text字段中有回车换行操作,显示结果行是乱的. 2.用mysql ...

  8. python怎么用excel-Python怎么写入excel文件?详细实例在这里。。。

    本文概述 Python写入excel文件用于使用xlwt模块在电子表格上执行多项操作.这是将数据和格式信息写入扩展名为.xls的文件的理想方法. 如果你想将数据写入任何文件, 又不想自己做任何麻烦, ...

  9. python指定数据写入指定excel_python脚本——生成EXCEL,连接数据库,并将指定数据写入EXCEL...

    #!/usr/bin/python # -*- coding: utf-8 -*- #!/usr/bin/env python import MySQLdb import sys import xls ...

  10. python 列表写入excel_Python将MySQL表数据写入excel

    背景:将mysql表查询结果写入excel. 1.使用sqlyog工具将查询结果导出到Excel.xml中,用excel打开发现:因为text字段中有回车换行操作,显示结果行是乱的. 2.用mysql ...

最新文章

  1. 显示一个数字到小数点后两位
  2. 20164319 刘蕴哲 Exp9 Web安全基础
  3. SAP UI5 Focus related
  4. boundingBox getContentSize
  5. 单片机魔法编程百度云_[2020][欧美][喜剧][魔法教母]高清资源百度云,高清1080P资源在线!...
  6. awk命令输出单引号
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的超市库房管理系统
  8. FLUSH TABLES WITH READ LOCK有多快
  9. 程序员级别,你到哪一级?
  10. 如何开启VMware串口
  11. STM32L151C8T6笔记2:RTC唤醒的STOP模式
  12. 2017暑期实习招聘-产品经理-微软WDGAE(1)-2轮面试
  13. 统计 fasta 文件序列长度及 GC 含量
  14. 2010年总结机器人领域sci期刊杂志
  15. laravel:如何快速实现数据填充,创建模拟数据(使用seeder)
  16. YYH的球盒游戏(NOIP模拟赛Round 6)
  17. 基于可见光通信的移动机器人室内定位及物联网应用
  18. 关于自己学习安卓的体会
  19. Activiti 介绍
  20. m被3整除的c语言表达式,C语言编写函数fun,实现从整数m到n,能被3整除

热门文章

  1. 高风险IP究竟来自哪里?IP定位带你反欺诈
  2. python余弦定理_基于Python计算气弹簧选型
  3. mui 点击长按复制文本
  4. 目标检测论文综述(一)深度卷积神经网络
  5. java类加载机制之类加载过程、类加载器及双亲委派模型详解
  6. SecureCRT and SecureFX 8.3 中文版
  7. 明道云实现产品BOM清单的快速搭建
  8. java通过SMTP发送QQ邮件(参考自龙果学院)
  9. 卡尔曼滤波算法及其应用
  10. Access 2016 - 学习笔记1 - Access中写SQL创建一个table