从 xlsxwriter 生成的 Excel 图表中隐藏 #N/A 或空单元格

问题描述 投票:0回答:1

本质上,我正在使用 xlsxwriter 生成许多图表,并尝试确保图表中出现#N/A 的空白。不幸的是,除非选择显示 #N/A 作为空单元格设置,否则这是不可能的(我不认为这是受支持的功能,因为它对于 Excel 来说相对较新)。

我目前正在使用以下代码来生成上述内容:


from xlsxwriter.workbook import Workbook

workbook  = Workbook('chart.xlsx')
worksheet = workbook.add_worksheet()

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

headings = ['Number', 'Value']

line_chart = workbook.add_chart({'type': 'line'})

line_chart.add_series({
    'categories': '={1,2,3,4,5,6}',
    'values':     '={2,#N/A,2,3,4,#N/A}'
})

worksheet.insert_chart('F2', line_chart)

workbook.close()

我知道如果我将其更改为以下内容,问题就会得到解决,但我的目标是使用上述方法。如果不可能的话也没关系。


from xlsxwriter.workbook import Workbook

workbook  = Workbook('chart.xlsx')
worksheet = workbook.add_worksheet()

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

headings = ['Number', 'Value']
data = [
    [1, 2, 3, 4, 5, 6],
    [2,'', 2, 3, 4,'=NA()'],
]

worksheet.write_row('A1', headings, bold)
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])

line_chart = workbook.add_chart({'type': 'line'})

line_chart.add_series({
    'categories': '=Sheet1!$A$2:$A$7',
    'values':     '=Sheet1!$B$2:$B$7',
})

worksheet.insert_chart('F2', line_chart)

workbook.close()
python-3.x xlsxwriter
1个回答
1
投票

不幸的是,除非选择显示#N/A作为空单元格设置,否则这是不可能的(我不认为这是受支持的功能,因为它对于Excel来说相对较新)。

这是正确的。看起来该功能是最近在 Excel 16 中添加的(XML 元素是

<c16r3:dataDisplayOptions16>
)。所以 XlsxWriter 不支持它。

注意,可以使用 chart.show_blanks_as():

设置这些选项中的前 3 个
chart.show_blanks_as('span')

可用的选项有:

  • gap
    :空白数据显示为间隙。默认值。
  • zero
    :空白数据显示为零。
  • span
    :空白数据用线连接。

更新:2023-09-18 - 添加了对通过 XlsxWriter v3.1.4 中的

chart.show_na_as_empty_cell()
方法启用 Excel“将 #N/A 显示为空单元格”图表选项的支持。

© www.soinside.com 2019 - 2024. All rights reserved.