I have browsed almost all the previous threads, but still cannot get this working.I am trying to add a new sheet to an existing workbook. My code works,but it keeps on adding a lot more [so many of them actually] sheets. I can't figure out the solution.Below is my code
from openpyxl import load_workbook
wb2 = load_workbook['template.xlsx']
from xlutils.copy import copy as xl_copy
wb = xl_copy[wb2]
wb.create_sheet['sid1']
wb.save['template.xlsx']
asked Nov 2, 2016 at 17:04
1
If you want to add a sheet to an existing spreadsheet, just go ahead and add the new sheet to the file instead of copying your load
object and trying to add the new sheet to it.
from openpyxl import load_workbook
wb2 = load_workbook['template.xlsx']
wb2.create_sheet['sid1']
wb2.save['template.xlsx']
answered Nov 2, 2016 at 17:12
DanielDaniel
4,8175 gold badges33 silver badges46 bronze badges
5
View Discussion
Improve Article
Save Article
View Discussion
Improve Article
Save Article
XlsxWriter is a Python module for writing files in the XLSX file format. It can be used to write text, numbers, and formulas to
multiple worksheets. Also, it supports features such as formatting, images, charts, page setup, auto filters, conditional formatting and many others.
Use this command to install xlsxwriter module:
pip install xlsxwriter
Note: Throughout XlsxWriter, rows and columns are zero indexed. The first cell in a worksheet, A1 is [0, 0], B1 is [0, 1], A2 is [1, 0], B2 is [1, 1] ..similarly for all.
Let’s see how to create and write to an excel-sheet using
Python.
Code #1 : Using A1 notation[cell name] for writing data in the specific cells.
Python3
import
xlsxwriter
workbook
=
xlsxwriter.Workbook[
'hello.xlsx'
]
worksheet
=
workbook.add_worksheet[]
worksheet.write[
'A1'
,
'Hello..'
]
worksheet.write[
'B1'
,
'Geeks'
]
worksheet.write[
'C1'
,
'For'
]
worksheet.write[
'D1'
,
'Geeks'
]
workbook.close[]
Output:
Code #2 : Using the row-column notation[indexing value] for writing data in the specific cells.
Python3
import
xlsxwriter
workbook
=
xlsxwriter.Workbook[
'Example2.xlsx'
]
worksheet
=
workbook.add_worksheet[]
row
=
0
column
=
0
content
=
[
"ankit"
,
"rahul"
,
"priya"
,
"harshita"
,
"sumit"
,
"neeraj"
,
"shivam"
]
for
item
in
content :
worksheet.write[row, column, item]
row
+
=
1
workbook.close[]
Output:
Code #3 :
Creating a new sheet with the specific name
Python3
import
xlsxwriter
workbook
=
xlsxwriter.Workbook[
'Example3.xlsx'
]
worksheet
=
workbook.add_worksheet[
"My sheet"
]
scores
=
[
[
'ankit'
,
1000
],
[
'rahul'
,
100
],
[
'priya'
,
300
],
[
'harshita'
,
50
],
]
row
=
0
col
=
0
for
name, score
in
[scores]:
worksheet.write[row, col, name]
worksheet.write[row, col
+
1
, score]
row
+
=
1
workbook.close[]
Output:
XlsxWriter has some advantages and disadvantages over the alternative Python
modules for writing Excel files.
Advantages:
- It supports more Excel features than any of the alternative modules.
- It has a high degree of fidelity with files produced by Excel. In most cases the files produced are 100% equivalent to files produced by Excel.
- It has extensive documentation, example files and tests.
- It is fast and can be configured to use very little memory even for very large output files.
Disadvantages:
- It cannot read or modify existing Excel XLSX files.