Python 使用LibreOffice打开时,图像不显示在标题中

Python 使用LibreOffice打开时,图像不显示在标题中,python,xlsx,xlsxwriter,libreoffice-calc,Python,Xlsx,Xlsxwriter,Libreoffice Calc,我需要使用Python XlsxWriter创建一个自定义发票,其中我需要创建一个带有公司徽标的自定义标题。必须使用LibreOffice而不是Excel打开生成的工作簿 使用来自的示例。我的代码是: #!/usr/bin/env python try: import xlsxwriter except ImportError as e: print e exit() workbook = xlsxwriter.Workbook('tmp.xlsx') previ

我需要使用Python XlsxWriter创建一个自定义发票,其中我需要创建一个带有公司徽标的自定义标题。必须使用LibreOffice而不是Excel打开生成的工作簿

使用来自的示例。我的代码是:

#!/usr/bin/env python

try:
    import xlsxwriter
except ImportError as e:
    print e
    exit()


workbook = xlsxwriter.Workbook('tmp.xlsx')

preview = 'Select Print Preview to see the header and footer'

# Insert a header image.
#
worksheet1 = workbook.add_worksheet('Simple')
header1 = '&L&G'
footer1 = '&LHere is some left aligned text.'

worksheet1.set_header(header1, {'image_left': 'logo.png'})
worksheet1.set_footer(footer1)
worksheet1.set_margins(top=1.3)

# Insert an image.
worksheet1.write('A2', 'Insert an image in a cell:')
worksheet1.insert_image('B2', 'logo.png')

worksheet1.set_column('A:A', 50)
worksheet1.write('A1', preview)
workbook.close()

虽然我的徽标可以插入B2单元格,但当使用LibreOffice打开时,在标题中找不到我的图像。该图像在Excel中的显示应与实际相符。

您的示例确实有效。以下是我使用最新版本的模块和Excel 2013运行时得到的输出:

也许您有一个旧版本的XlsxWriter。检查您的版本,如下所示:

python -c "import xlsxwriter; print(xlsxwriter.__version__)"
至少应为0.6.0,当前版本为0.9.2。

已编辑

带有徽标标题的xlsx可在Excel中完美运行


它没有显示在LibreOffice(5.1.4.2 10m0(Build:2))中,这可能是LibreOffice/OpenOffice中的一个错误。

我可以与您确认一下您是使用excel打开还是使用OpenOffice打开编写的文件吗?我在libreoffice试过,但没有显示出来。是的,我用的是0.9.2gavinyap@gavin-ubuntu ~/开发/excel python-c’导入xlsxwriter;使用Excel 2013打印(xlsxwriter.______;版本)'0.9.2I am。另外,我是XlsxWriter的作者,repo中有许多测试将输出与Excel2007创建的头图像文件进行比较,结果都通过了。所以它确实有效。:-)抱歉,我不确定这是否是由于LibreOffice没有显示。如果它在Excel中工作,模块所针对的应用程序,但在LibreOffice中不工作,那么我认为问题在于LibreOffice。没有?是的。我同意你的看法,它在excel中工作。问题在于我在回答中提到的图书馆办公室。但不幸的是,我需要它在libreoffice(或类似)中工作,以便使用他们的cmd行工具将其转换为PDF。我只想澄清一下,因为人们会通过谷歌找到这一点。它可能不适用于Libreoffice问题,但这不是XlsxWriter问题。XlsxWriter包含9个类似这样的测试用例,将XlsxWriter的输出、XML元素与Excel中创建的文件逐个进行比较。在所有情况下,输出都是100%相同的(除了元数据)。这些测试正在传递。您可以通过在Excel中创建一个带有标题图像的文件并在LibreOffice.Yes中尝试来验证这一点。它非常适合Excel。而且可能仅适用于使用Excel应用程序的目标用户。