xlsxwriter写行合并_XLSxWriter-根据列标签动态更改格式

这篇博客讨论了如何使用XLSXWriter库根据列标签动态地更改Excel文件中列的格式。作者提到了如何创建一个有序字典 `_styles` 来存储不同列的格式,并使用 `worksheet.set_column()` 方法设置列的样式。文章还提出了一个问题,即如何根据列名称而不是单元格坐标动态应用格式,并给出了可能的解决方案。
摘要由CSDN通过智能技术生成

评论

:

date_format = workbook.add_format({'num_format': 'dd/mm/yy'})

,将日期列显示为Unix编号,而不是正确的日期。

所示样本值为:

42668

而不是显示

"24-10-16"

.

评论

:…我可以使用基于列名的适当格式(即计数、销售日期)

你可以使用

worksheet.set_column()

为整个列设置样式。

文档:

XlsxWriter worksheet.set_column()

先决条件

:列名称/样式的顺序必须在

同步

和你的桌子。

例如。

count == 'A'

,

sale_date == 'B'

等等……

from collections import OrderedDict

_styles = OrderedDict([('count',number_format), ('sale_date', date_format), ('total', number_format), ('text', string_format)])

for col, key in enumerate(_styles):

A1_notation = '{c}:{c}'.format(c=chr(col + 65))

worksheet.set_column(A1_notation, None, _styles[key])

print("worksheet.set_column('{}', None, {})".format(A1_notation, _styles[key]))

产量

:

worksheet.set_column('A:A', None, number_format)

worksheet.set_column('B:B', None, date_format)

worksheet.set_column('C:C', None, number_format)

worksheet.set_column('D:D', None, string_format)

对于后续写入,您不需要分配

style

,例如使用

worksheet.write('A1', 123)

将默认为

A:A number_format

问题

:我可以根据列名称使其动态化吗?

你没有用

“列名”

它叫

单元格A1符号

.

设置映射

dict

例如:

style_map = {'A': number_format, 'B':date_format}

用法

:

注意

:这只适用于

单一的

信件,发件人

A

Z

def write(A1_notation, value):

worksheet1.write(A1_notation, value, style_map[A1_notation[0]])

行-列表示法

(0, 0)

:

style_map = {'0': number_format, '1':date_format}

用法

:

def write(row, col, value):

worksheet1.write(row, col, value, style_map[col])

from xlsxwriter.utility import xl_rowcol_to_cell

def write(A1_notation, value):

worksheet1.write(A1_notation, value, style_map[xl_cell_to_rowcol(A1_notation)[1]])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值