If a worksheet has a comment, saving the workbook twice corrupts the saved spreadsheet
*Created originally on Bitbucket by [Bryce Poole](https://bitbucket.org/%7B4205bbe9-9779-490e-8259-0c8a1d1f7fd7%7D/)*
I am working with a spreadsheet that has comments. I save my workbook multiple times during the same run. The first save is fine, but the second save creates a corrupted worksheet that when opened in Excel, complains that it needs to be recovered. It says there is a problem with the comments.
When I renamed the spreadsheet to a zip file and unzipped, I found the comment file in question. It had duplicated comments. I tracked down the code and found that worksheets have an internal list/variable called “\_comments.” When a workbook is saved, the worksheet makes a list of all the comments and stores it in “\_comments.” This list survives a save call. When save is called a second time, it finds all the comments and saves them to the list a second time but without first clearing out the list, in effect duplicating the comment list.
As a temporary workaround, I found that if I cleared this list between saves, the issue goes away. Here is the sample code:
```python
import openpyxl
from openpyxl.comments import Comment
def main():
create_corrupt_spreadsheet()
def create_corrupt_spreadsheet():
wb = openpyxl.Workbook()
ws = wb.active
cell = ws.cell(row=1, column=1)
cell.comment = Comment('comment', 'author')
wb.save('1-No_Corruption.xlsx')
wb.save('2-Corrupt.xlsx')
# Workaround - Clear the list manually
for sheets in wb.worksheets:
sheets._comments.clear()
wb.save('3-No_Corruption.xlsx')
if __name__ == '__main__':
main()
```
I imagine if you were to clear out the “\_comments” list in openpyxl/worksheet/\_writer.py in the class WorksheetWriter, in the init function, it should fix the problem.
issue