首页 > 解决方案 > 有没有办法在 XlsxWriter 中创建图表而不将数据写入工作表中的单元格?IE。从python脚本中的数组?

问题描述

我的目标是在 XlsxWriter 的工作表中创建一个图表,而无需在工作表上的任何位置提供图表中的数据(我不想引用单元格)。由于法律原因,书中无法提供数据。

或者,如果有一种方法可以将数据写入单元格,绘制该数据,然后删除单元格引用,以便我可以有一个不引用单元格的图表,我也会对此持开放态度。我知道有一些方法可以在 excel 中实现这一点。

我尝试用整数列表(我想要绘制的数据)替换“类别”和“值”参数,但由于缺少单元格引用而出现错误。(见下面的功能)。

# Builds a chart with top left corner at row_start, col_start (zero 
# indexed).

# data[data_input[i][0]]['history'][0] is a list of dates.
# data[data_input[i][0]]['history'][1] is a list of values for those dates.

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

for i in range(len(data_input)):
    chart.add_series({
        'name':       title,
        'categories': data[data_input[i][0]]['history'][0],
        'values':     data[data_input[i][0]]['history'][1],
        'line':       {'color': colors[i], 'width': 1}
    })

worksheet.insert_chart(row_start, col_start, chart)

TypeError: xl_range_formula() 接受 5 个位置参数,但给出了 261 个

标签: pythonexcelchartsxlsxwriter

解决方案


我的目标是在 XlsxWriter 的工作表中创建一个图表,而无需在工作表上的任何位置使用图表中的数据。由于法律原因,书中无法提供数据。

那是不可能的。

在 Excel 中,可以根据您在数据对话框中直接提供的数据绘制图表,而无需参考单元格。但是,XlsxWriter 不支持该选项,并且它也不会以任何方式隐藏您的数据,因为任何人都可以进入对话框并查看数据。此外,任何人都可以解压缩文件并查看数据。

此外,任何人都可以将鼠标悬停在图表中的数据上并查看生成数据的值。

或者,如果有一种方法可以将数据写入单元格,绘制该数据,然后删除单元格引用,这样我就可以获得一个不引用单元格的图表,

不,出于与上述相同的原因。

退后一步,尝试确定您想要做的事情是否可以在 Excel 中以任何方式实现(可能通过隐藏带有源数据的工作表,然后锁定和密码保护文件)。如果有办法在 Excel 中执行此操作,那么您就会知道如何在 Python 中执行此操作的问题。

作为建议,一种方法是创建图表图像并将其插入 Excel。这样就没有与原始数据的链接。


推荐阅读