功能性的文章直接用几个最简单的实现表达:

xlsxwriter库的核心就是其Workbook对象。

创建一个指定名字的xlsx文件:

import xlsxwriter

filename = '/Users/piperck/Desktop/axiba.xlsx'

test_book = xlsxwriter.Workbook(filename)

worksheet = test_book.add_worksheet()

test_book.close()

创建一个Workbook的实例对象。可以传入一个文件名字,如果不想生成的文件在当前路径下面,可以在文件名字前面带上绝对路径。

add_worksheet()就是增加一个sheet

然后关闭这个对象,完成xlsx文件的生成。

创建一个指定名字的sheet并且为其添加一些数据:

import xlsxwriter

filename = '/Users/piperck/Desktop/axiba.xlsx'

test_book = xlsxwriter.Workbook(filename)

worksheet = test_book.add_worksheet('what')

expenses = (

['Rent', 1000],

['Gas', 100],

['Food', 300],

['Gym', 50],

)

# 定义起始的行列 会在这个基础上 行列各加一 作为初始行列

row = 0

col = 0

for item, cost in expenses:

worksheet.write(row, col, item)

worksheet.write(row, col+1, cost)

row += 1

worksheet.write(row, col, '=sum(B0:B4)')

test_book.close()

我们可以使用得到的worksheet对象来添加其行列数据,如上所示。注意最后添加数据可以直接在第三个参数里面使用函数。

创建一个有指定样式的Workbook:

这个方法其实。。应该有非常多的参数,大家根据实际需要可以具体去查询更多的属性。这个样式要在Workbook的对象上加。

import xlsxwriter

filename = '/Users/piperck/Desktop/axiba.xlsx'

test_book = xlsxwriter.Workbook(filename)

worksheet = test_book.add_worksheet('what')

bold = test_book.add_format({'bold': True})

test_book.add_format()

expenses = (

['Rent', 1000],

['Gas', 100],

['Food', 300],

['Gym', 50],

)

# 定义起始的行列 会在这个基础上 行列各加一 作为初始行列

row = 0

col = 0

for item, cost in expenses:

worksheet.write(row, col, item, bold)

worksheet.write(row, col+1, cost)

row += 1

test_book.close()

关于更多的参数,完全可以参看源代码里面的property字典下面初始化的那一堆东西,应该都是。

根绝着就能解决大部分问题了,如果有更多的需求就查阅下面的文档即可。

通用做法可能会基于此再做一些东西来包装 xlsxwriter 来让他更好用,这个就看大家对自己业务需要抽象的能力了。

Reference:

在当前文件夹生成

#coding=utf-8

def get_excel():

"""

生成excel

:return:

"""

import xlsxwriter

workbook = xlsxwriter.Workbook("test.xlsx")

worksheet = workbook.add_worksheet()

# 样式

formats = Struct() # 字典转化为点语法

formats.base = {"font_name": u"宋体", "font_size": 11, "align": "center", "valign": "vcenter", "text_wrap": True}

# formats.condition = dict_merge(formats.base, {"align": "left"})

formats.bold = {"bold": True} # 加粗

formats.row = dict_merge(formats.base, {"border": 1})

formats.first_row = dict_merge(formats.row, {"bold": True}) # 首行

formats.more_row = dict_merge(formats.row, {}) # 普通行

formats.more_row_even = dict_merge(formats.row, {"bg_color": "#dddddd"}) # 普通行-奇数

# 筛选条件行

worksheet.merge_range('A1:F1', "") # 合并单元格

conditions_list = [] # 条件

province = '省'

city = '市'

county = '地区'

name = '姓名'

phone = '电话'

date = '2018-6'

if province or city or county:

area_name = province + city + county

conditions_list.append(workbook.add_format(formats.bold))

conditions_list.append(u'地区:')

conditions_list.append(u'%s ' % area_name)

if name:

conditions_list.append(workbook.add_format(formats.bold))

conditions_list.append(u'姓名:')

conditions_list.append(u'%s ' % name)

if phone:

conditions_list.append(workbook.add_format(formats.bold))

conditions_list.append(u'手机:')

conditions_list.append(u'%s ' % phone)

if date:

year, month = date[0:4], date[5:7]

conditions_list.append(workbook.add_format(formats.bold))

conditions_list.append(u'创建时间:')

conditions_list.append(u'%s/%s ' % (year, month))

if conditions_list: # 如果有条件

worksheet.write_rich_string('A1', *conditions_list) # 首行

# 表格首行

cols = ["姓名", "电话", "地区"]

for col_index, col in enumerate(cols):

worksheet.write(1, col_index, col, workbook.add_format(formats.first_row)) # 第二行,col_index列, col_index从0开始,也就是第一列开始

data_list = [{"name": "Spencer", "tel": "13888888888", "reg": "中国"},{"name": "Jeff", "tel": "139999999999", "reg": "台湾省"}]

# 表格其余行

for row_index, u in enumerate(data_list, start=2): # 因为前两行都被占用了,所以从第三行第一列开始

# 斑马条

if row_index % 2 != 0:

row_format = formats.more_row # excel格式普通行

else:

row_format = dict_merge(formats.more_row_even) # excel格式奇数行

# 日期格式

date_format = dict_merge(row_format, {"num_format": "yyyy/mm/dd hh:mm"})

# 靠左

left_format = dict_merge(row_format, {"align": "left"})

# 第一个参数:行,第二个参数:列,第三个参数:数据,第四个参数:属性

worksheet.write(row_index, 0, u['name'], workbook.add_format(row_format))

worksheet.write(row_index, 1, u['tel'], workbook.add_format(row_format))

worksheet.write(row_index, 2, u['reg'], workbook.add_format(row_format))

# 列宽

# 第一个参数是第几列开始,第二个人参数是从第几列结束

# 比如下方第一个就是设置第一列为20,第二个就是设置第二列为10,第三个就是设置3到6列为20

worksheet.set_column(0, 0, 20)

worksheet.set_column(1, 1, 10)

worksheet.set_column(2, 5, 20)

workbook.close()

def dict_merge(*args):

"""

功能说明:合并字典

"""

all = {}

for arg in args:

if not isinstance(arg, dict):

continue

all.update(arg)

return all

class Struct(dict):

"""

- 为字典加上点语法. 例如:

>>> o = Struct({'a':1})

>>> o.a

>>> 1

>>> o.b

>>> None

"""

def __init__(self, dictobj={}):

self.update(dictobj)

def __getattr__(self, name):

# 如果有则返回值,没有则返回None

if name.startswith('__'):

raise AttributeError

return self.get(name)

def __setattr__(self, name, val):

self[name] = val

def __hash__(self):

return id(self)

if __name__ == '__main__':

get_excel()

到此这篇关于使用python库xlsxwriter库来输出各种xlsx文件的示例的文章就介绍到这了,更多相关python xlsxwriter输出xlsx内容请搜索站圈网以前的文章或继续浏览下面的相关文章希望大家以后多多支持站圈网!

python xlsxwriter行数_使用python库xlsxwriter库来输出各种xlsx文件的示例相关推荐

  1. python excel行数_使用python计算excel中的行数

    你的问题有点不清楚,如果你能给我们提供一个可以重复的例子来说明你所做的,你的问题可能会得到改善.不过,我想这可能是你想要的?在import pandas as pd data = {'foo':[5, ...

  2. python统计csv行数_对Python 多线程统计所有csv文件的行数方法详解

    如下所示: #统计某文件夹下的所有csv文件的行数(多线程) import threading import csv import os class MyThreadLine(threading.Th ...

  3. python显示行数_在idle中如何显示行号

    展开全部 其实IDLE提供了一个显32313133353236313431303231363533e78988e69d8331333365663438示所有行和所有字符的功能. 我们打开IDLE sh ...

  4. python删除重复值所在的行数_使用python读取txt文件的内容,并删除重复的行数方法...

    注意,本文代码是使用在txt文档上,同时txt文档中的内容每一行代表的是图片的名字. #coding:utf-8 import shutil readDir = "原文件绝对路经" ...

  5. python统计行号_用Python实现两个文件的不同行的编号

    title: 文件不同行 tags: python,IO,dict 比较两个文件在哪些行内容不同,返回这些行的编号,行号编号从1开始. 定义统计文件行数的函数 # 统计文件个数def statLine ...

  6. python读取mysql数据库行数_使用python读取mysql数据库并进行数据的操作

    (一)环境的配置 使用python调用mysql数据库要引进一些库. 目前我使用的python版本是python3.6.引进库为pymysql 其他对应的库可以有以下选择: mysqldb,oursq ...

  7. python统计行号_利用Python进行数据分析(第三篇上)

    上一篇文章我记录了自己在入门 Python 学习的一些基础内容以及实际操作代码时所碰到的一些问题. 这篇我将会记录我在学习和运用 Python 进行数据分析的过程: 介绍 Numpy 和 Pandas ...

  8. python获取行号_在python中获取当前位置所在的行号和函数名

    python中没办法直接取得当前的行号和函数名.这是有人在论坛里提出的问题,底下一群人只是在猜测python为什么不像__file__一样提供__line__和__func__,但是却最终也没有找到解 ...

  9. python反复猜数_如何python做一个1-100的猜数游戏,告诉我我猜的次数

    内容速读: 完整的程序参考:import randomsecret = random.randintguess = 0tries = 0while int != secret and tries &l ...

最新文章

  1. Jenkins 持续集成 概念(学习笔记二十六)
  2. python对文件的读操作方法有哪些-Python文件常用操作方法
  3. 【软件工程实践】结对项目-四则运算 “软件”之升级版
  4. 尼康G镜头与D镜头的差别
  5. 大数据学习(2-1)-Hadoop安装教程-单机模式和伪分布模式(Ubuntu14.04LTS)
  6. linux查看进程中的线程名,linux 怎么样查看一个进程的线程
  7. kettle安装,启动spoon之后一闪就没了问题
  8. codeforces 题解
  9. Android IOS视频录制技术方案
  10. Love6 五一无忧无虑假期后的一些随笔和感想
  11. 【历史上的今天】10 月 10 日:谷歌推出 Dart 预览版;俄罗斯最大的社交网站上线;上海大众汽车公司诞生
  12. 10分钟制作UWP汉堡菜单
  13. 突破单IP频繁反爬虫限制的小技巧
  14. 【网络】H3C 交换机telnet查看端口流量Python小工具
  15. 图学习——04.HAN(异构图注意力网络)
  16. 《信用管理》--信用评分方法
  17. Audacity分析清音浊音爆破音的时域及频域特性
  18. 什么是闭包,闭包的作用与好处是什么,何时使用闭包,对闭包的改进
  19. Vmware安装MacOS系统
  20. 把一根木棍折成三段,求这三段能组成一个三角形的概率

热门文章

  1. 不用找了,学习BM算法,这篇就够了(思路+详注代码)
  2. 【纪念第一次AK(泪目)】第一届ACC(AcWing Cup)全国高校联赛(初赛)(Java版)
  3. 关于手机功能NFC(以华为V9为例)
  4. Mellanox SX6036 40G/56G IB/以太网交换机基础配置以及开启web管理
  5. SoCFPGA-A10 内核ADRV9025设备与驱动的添加
  6. 阿里笔试题解答(一)
  7. python常用库文件一键安装
  8. jsr303常用注解
  9. java lua_如何在Java中使用Lua脚本语言
  10. windows下批量删除指定类型文件