Now i'm using xlsxwriter to read data from csv files and making charts as information. but now i want to add another worksheet from another xlsx file. Which module can i use to copy it, xlrd or openpyxl?
i have do some several testing like:
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
but it didn't work, can anyone teach me how to make it work? thanks
I have an example below that uses xlsxwriter to create a worksheet with a chart, and then using openpyxl reads in this existing workbook and adds a new worksheet.
I'm using the latest version of openpyxl downloaded from here. If you're using an older version you may loose your chart based on what I've been reading here.
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$1:$A$5'})
chart.add_series({'values': '=Sheet1!$B$1:$B$5'})
chart.add_series({'values': '=Sheet1!$C$1:$C$5'})
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')