如何连接字符串单元格内容

时间:2014-12-08 15:47:34

标签: python python-2.7 xlsxwriter

我有这个有效:

chart.set_title({'name': '=Sheet1!$A$2'})

我想要的功能是这样的;

chart.set_title({'name': '=Sheet1!$A$2' + ' to ' + '=Sheet1!$B$2'})

这会产生Unknown worksheet reference的错误。两个单元格都包含日期,因此它看起来像1/1/2011 to 4/4/2014。我无法找到有关如何执行此操作的任何示例in the docs

还根据现已删除的建议答案尝试了这个:

chart.set_title({'name': '=CONCATENATE(Sheet1!$A$2, " to ", Sheet1!$B$2)'})

然而,似乎set_title不接受公式。可以将此公式写入单元格,然后在set_title中引用该单元格。有点像kluge:

worksheet.write(9, 20, '=CONCATENATE(Sheet1!$A$2, " to ", Sheet1!$B$2)')
chart.set_title({'name': '=Sheet1!$U$10'}) #(9,20)

1 个答案:

答案 0 :(得分:1)

我认为你不想在Excel中做到这一点。

这是一个有效的XlsxWriter示例,使用您在上面显示的公式。

import xlsxwriter

workbook = xlsxwriter.Workbook('chart_column.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': 1})

headings = ['Number', 'Batch 1', 'Batch 2']
data = [
    [2, 3, 4, 5, 6, 7],
    [10, 40, 50, 20, 10, 50],
    [30, 60, 70, 50, 40, 30],
]

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

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

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

chart.set_title({'name': '=CONCATENATE(Sheet1!$A$2, " to ", Sheet1!$B$2)'})

worksheet.insert_chart('E2', chart)

workbook.close()

这会发出警告,但它仍会生成一个带有如下图表的有效工作簿:

enter image description here

标题不可见但你编辑它的公式就在那里。但是,如果您尝试更改它,Excel会抱怨它不是一个有效的公式。因此,Excel似乎不支持此功能。

如果您认为可以在Excel中显示并且可以显示示例,我将研究如何在XlsxWriter中支持它。