xlsxwriter写入Excel
问题描述
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相关推荐
- Unity3D研究院之在MAC上脚本XlsxWriter写入Excel .xlsx格式
原地址:http://www.xuanyusong.com/archives/3011 以前找了很久可以跨平台支持读写Excel的工具,我也试了很多种DLL.可在Windows上各个完美支持,可是在M ...
- xlsxwriter写行合并_XlsxWriter写入excel文件
XlsxWriter写入excel文件 唐黎琦 [摘要] 在日常开发中,我们经常会遇到需要将数据导出为excel的场景,XlsxWriter作为专门写入excel文件的python库,对excel文件 ...
- xlsxwriter写行合并_使用xlsxwriter将pandas数据框写入excel并包含“write-rich”字符串格式...
以下是可复制的,并产生所需的输出. import xlsxwriter, pandas as pd workbook = xlsxwriter.Workbook('pandas_with_rich_s ...
- python写入excel表格数据绘制图表_(原创)xlsxwriter,python excel 写入数据\图表等操作_图表操作(二)...
前面分享了使用xlsxwriter创建excel和写入数据GUC:(原创)xlsxwriter,python excel 写入数据\图表等操作_创建.写入(一)zhuanlan.zhihu.com ...
- python 循环写入excel sheet_python 使用xlsxwriter循环向excel中插入数据和图片的操作...
写入Excel中后有显示第一列客户款号总库存这些,开始写在第12行第一列开始写入,一行写入5个,然后再隔12行,再写入下边的数据,图片需要对应客户款号在Excel写入图片,类似下面的格式 import ...
- 如何使用xlsxwriter 写入数据到xlsx excel 设置边框实线连续内存模式
设置边框实线 cell_format = workbook.add_format({'border':1})worksheet.conditional_format('A1:XFD1048576', ...
- Python将MySQL表数据写入excel
背景:将mysql表查询结果写入excel. 1.使用sqlyog工具将查询结果导出到Excel.xml中,用excel打开发现:因为text字段中有回车换行操作,显示结果行是乱的. 2.用mysql ...
- python怎么用excel-Python怎么写入excel文件?详细实例在这里。。。
本文概述 Python写入excel文件用于使用xlwt模块在电子表格上执行多项操作.这是将数据和格式信息写入扩展名为.xls的文件的理想方法. 如果你想将数据写入任何文件, 又不想自己做任何麻烦, ...
- python指定数据写入指定excel_python脚本——生成EXCEL,连接数据库,并将指定数据写入EXCEL...
#!/usr/bin/python # -*- coding: utf-8 -*- #!/usr/bin/env python import MySQLdb import sys import xls ...
- python 列表写入excel_Python将MySQL表数据写入excel
背景:将mysql表查询结果写入excel. 1.使用sqlyog工具将查询结果导出到Excel.xml中,用excel打开发现:因为text字段中有回车换行操作,显示结果行是乱的. 2.用mysql ...
最新文章
- 显示一个数字到小数点后两位
- 20164319 刘蕴哲 Exp9 Web安全基础
- SAP UI5 Focus related
- boundingBox getContentSize
- 单片机魔法编程百度云_[2020][欧美][喜剧][魔法教母]高清资源百度云,高清1080P资源在线!...
- awk命令输出单引号
- 基于JAVA+SpringMVC+Mybatis+MYSQL的超市库房管理系统
- FLUSH TABLES WITH READ LOCK有多快
- 程序员级别,你到哪一级?
- 如何开启VMware串口
- STM32L151C8T6笔记2:RTC唤醒的STOP模式
- 2017暑期实习招聘-产品经理-微软WDGAE(1)-2轮面试
- 统计 fasta 文件序列长度及 GC 含量
- 2010年总结机器人领域sci期刊杂志
- laravel:如何快速实现数据填充,创建模拟数据(使用seeder)
- YYH的球盒游戏(NOIP模拟赛Round 6)
- 基于可见光通信的移动机器人室内定位及物联网应用
- 关于自己学习安卓的体会
- Activiti 介绍
- m被3整除的c语言表达式,C语言编写函数fun,实现从整数m到n,能被3整除