关于通过 xlrd 或 openpyxl 传输 sheet 到 xlsxwriter 的问题

Issue about transfer sheet through xlrd or openpyxl to xlsxwriter

现在我正在使用 xlsxwriter 从 csv 文件中读取数据并制作图表作为信息。但现在我想从另一个 xlsx 文件中添加另一个工作表。我可以使用哪个模块来复制它,xlrd 还是 openpyxl?

我做了一些测试,比如:

 workbook_template = openpyxl.load_workbook('Test_template.xlsx')
 cover_template = workbook_template.get_sheet_by_name('Cover')
 worksheet_cover = Report.add_worksheet("Cover")
 worksheet_cover = cover_template

但是没有用,谁能教我怎么用?谢谢

我在下面有一个例子,它使用 xlsxwriter 创建一个带有图表的工作表,然后使用 openpyxl 读取这个现有的工作簿并添加一个新的工作表。

我正在使用从 here. If you're using an older version you may loose your chart based on what I've been reading here 下载的最新版本的 openpyxl。

import xlsxwriter
from openpyxl import Workbook
from openpyxl import load_workbook

#modified example from xlsxwriter documentation at http://xlsxwriter.readthedocs.io/chart.html
data = [
    [1, 2, 3, 4, 5],
    [2, 4, 6, 8, 10],
    [3, 6, 9, 12, 15],
]

workbook = xlsxwriter.Workbook('Test_template.xlsx')
worksheet = workbook.add_worksheet()

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

worksheet.write_column('A1', data[0])
worksheet.write_column('B1', data[1])
worksheet.write_column('C1', data[2])

chart.add_series({'values': '=Sheet1!$A:$A'})
chart.add_series({'values': '=Sheet1!$B:$B'})
chart.add_series({'values': '=Sheet1!$C:$C'})

worksheet.insert_chart('A10', chart)

workbook.close()

#opening xlsxwriter created workbook with openpyxl and adding a sheet

workbook = load_workbook('Test_template.xlsx')
worksheet = workbook.create_sheet('new_sheet')
worksheet["A1"] = "Putting some text in"
workbook.save('Test_template.xlsx')