从数组生成字符串格式的Excel单元格范围?

时间:2019-11-26 01:03:25

标签: xlsxwriter

我正在尝试以编程方式使用xlsx writer:

  1. 将数据集插入Excel工作表
  2. 将与数据集相同域的相关不确定性数据(“噪声”)插入表中
  3. 创建具有自定义误差线的Excel散点图,指向(2)中的噪声数据以同时用作高误差值和低误差值

我发现error_bar属性(plus_values,minus_values)无法识别xlsx编写器中其他位置使用的单元格范围['sheet name',start_row,start_col,end_row,end_col]的数组格式。

是否有一种方法可以利用模块中必须已经存在的数组->字符串格式的转换功能? (例如xlsxwriter.cell_range(['data', 1,2,252,2])返回字符串"='data'!$D$2:$D$253"

或者,这是否足够普遍,可以更新自定义错误栏功能以支持数组以及字符串格式的单元格范围?

请参见下面的示例代码。

import xlsxwriter
import pandas as pd
import numpy as np

writer = pd.ExcelWriter('err_bar_test.xlsx', engine='xlsxwriter')

x_axis = np.arange(0,8*np.pi,0.1)
y_axis = np.sin(x_axis)
noise = np.random.random_sample(len(x_axis))


df = pd.DataFrame({'axis' : x_axis,
                   'value': y_axis,
                   'std_dev' : noise,
                  } )

df.to_excel(writer, sheet_name='data')
workbook  = writer.book
worksheet = writer.sheets['data']


chart = workbook.add_chart({'type': 'scatter'})
worksheet.insert_chart('F2', chart)
chart.add_series({ 
    'values': ['data', 1,2,252,2],
    'categories': ['data', 1,1,252,1],
    'y_error_bars':{
        'type': 'custom',

# This works
        'plus_values': "='data'!$D$2:$D$253",
        'minus_values': "='data'!$D$2:$D$253",

# This does not work :(
#         'plus_values': ['data',1,3,252,3],
#         'minus_values': ['data',1,3,252,3],

                 },
    'smooth': 'true',
})

writer.save()

0 个答案:

没有答案