Skip to content

Commit

Permalink
worksheet: fix repeat_row() issue with quoted sheet names
Browse files Browse the repository at this point in the history
Add a fix for an issue where a worksheet name needed quoting when
used with a repeat_row()/Print_Titles defined name.

Issue #1078
  • Loading branch information
jmcnamara committed Jun 30, 2024
1 parent 6a3a310 commit e5a37a8
Show file tree
Hide file tree
Showing 13 changed files with 488 additions and 16 deletions.
10 changes: 6 additions & 4 deletions xlsxwriter/test/comparison/test_quote_name05.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ def test_create_file(self):

workbook = Workbook(self.got_filename)

worksheet = workbook.add_worksheet()
sheet_name = "Sheet1"

worksheet = workbook.add_worksheet(sheet_name)
chart = workbook.add_chart({"type": "column"})

chart.axis_ids = [54437760, 59195776]
Expand All @@ -44,9 +46,9 @@ def test_create_file(self):
worksheet.set_portrait()
worksheet.vertical_dpi = 200

chart.add_series({"values": ["Sheet1", 0, 0, 4, 0]})
chart.add_series({"values": ["Sheet1", 0, 1, 4, 1]})
chart.add_series({"values": ["Sheet1", 0, 2, 4, 2]})
chart.add_series({"values": [sheet_name, 0, 0, 4, 0]})
chart.add_series({"values": [sheet_name, 0, 1, 4, 1]})
chart.add_series({"values": [sheet_name, 0, 2, 4, 2]})

worksheet.insert_chart("E9", chart)

Expand Down
10 changes: 6 additions & 4 deletions xlsxwriter/test/comparison/test_quote_name06.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ def test_create_file(self):

workbook = Workbook(self.got_filename)

worksheet = workbook.add_worksheet("Sheet-1")
sheet_name = "Sheet-1"

worksheet = workbook.add_worksheet(sheet_name)
chart = workbook.add_chart({"type": "column"})

chart.axis_ids = [62284544, 83429248]
Expand All @@ -44,9 +46,9 @@ def test_create_file(self):
worksheet.set_portrait()
worksheet.vertical_dpi = 200

chart.add_series({"values": ["Sheet-1", 0, 0, 4, 0]})
chart.add_series({"values": ["Sheet-1", 0, 1, 4, 1]})
chart.add_series({"values": ["Sheet-1", 0, 2, 4, 2]})
chart.add_series({"values": [sheet_name, 0, 0, 4, 0]})
chart.add_series({"values": [sheet_name, 0, 1, 4, 1]})
chart.add_series({"values": [sheet_name, 0, 2, 4, 2]})

worksheet.insert_chart("E9", chart)

Expand Down
11 changes: 7 additions & 4 deletions xlsxwriter/test/comparison/test_quote_name07.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ def test_create_file(self):

workbook = Workbook(self.got_filename)

worksheet = workbook.add_worksheet("Sheet'1")
sheet_name = "Sheet'1"

worksheet = workbook.add_worksheet(sheet_name)
chart = workbook.add_chart({"type": "column"})

chart.axis_ids = [48135552, 54701056]
Expand All @@ -44,9 +46,10 @@ def test_create_file(self):
worksheet.set_portrait()
worksheet.vertical_dpi = 200

chart.add_series({"values": ["Sheet'1", 0, 0, 4, 0]})
chart.add_series({"values": ["Sheet'1", 0, 1, 4, 1]})
chart.add_series({"values": ["Sheet'1", 0, 2, 4, 2]})
chart.add_series({"values": [sheet_name, 0, 0, 4, 0]})
chart.add_series({"values": [sheet_name, 0, 1, 4, 1]})
chart.add_series({"values": [sheet_name, 0, 2, 4, 2]})

worksheet.insert_chart("E9", chart)

workbook.close()
Expand Down
57 changes: 57 additions & 0 deletions xlsxwriter/test/comparison/test_quote_name08.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
###############################################################################
#
# Tests for XlsxWriter.
#
# SPDX-License-Identifier: BSD-2-Clause
# Copyright (c), 2013-2023, John McNamara, jmcnamara@cpan.org
#

from ..excel_comparison_test import ExcelComparisonTest
from ...workbook import Workbook


class TestCompareXLSXFiles(ExcelComparisonTest):
"""
Test file created by XlsxWriter against a file created by Excel.
"""

def setUp(self):

self.set_filename("quote_name08.xlsx")

def test_create_file(self):
"""Test the creation of a simple XlsxWriter file."""

workbook = Workbook(self.got_filename)

sheet_name = "1Sheet"

worksheet = workbook.add_worksheet(sheet_name)
chart = workbook.add_chart({"type": "column"})

chart.axis_ids = [55487104, 84573184]

data = [
[1, 2, 3, 4, 5],
[2, 4, 6, 8, 10],
[3, 6, 9, 12, 15],
]

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

worksheet.repeat_rows(0, 1)
worksheet.set_portrait()
worksheet.vertical_dpi = 200

chart.add_series({"values": [sheet_name, 0, 0, 4, 0]})
chart.add_series({"values": [sheet_name, 0, 1, 4, 1]})
chart.add_series({"values": [sheet_name, 0, 2, 4, 2]})

worksheet.insert_chart("E9", chart)

workbook.close()

self.assertExcelEqual()
57 changes: 57 additions & 0 deletions xlsxwriter/test/comparison/test_quote_name09.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
###############################################################################
#
# Tests for XlsxWriter.
#
# SPDX-License-Identifier: BSD-2-Clause
# Copyright (c), 2013-2023, John McNamara, jmcnamara@cpan.org
#

from ..excel_comparison_test import ExcelComparisonTest
from ...workbook import Workbook


class TestCompareXLSXFiles(ExcelComparisonTest):
"""
Test file created by XlsxWriter against a file created by Excel.
"""

def setUp(self):

self.set_filename("quote_name09.xlsx")

def test_create_file(self):
"""Test the creation of a simple XlsxWriter file."""

workbook = Workbook(self.got_filename)

sheet_name = "Sheet_1"

worksheet = workbook.add_worksheet(sheet_name)
chart = workbook.add_chart({"type": "column"})

chart.axis_ids = [54437760, 59195776]

data = [
[1, 2, 3, 4, 5],
[2, 4, 6, 8, 10],
[3, 6, 9, 12, 15],
]

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

worksheet.repeat_rows(0, 1)
worksheet.set_portrait()
worksheet.vertical_dpi = 200

chart.add_series({"values": [sheet_name, 0, 0, 4, 0]})
chart.add_series({"values": [sheet_name, 0, 1, 4, 1]})
chart.add_series({"values": [sheet_name, 0, 2, 4, 2]})

worksheet.insert_chart("E9", chart)

workbook.close()

self.assertExcelEqual()
57 changes: 57 additions & 0 deletions xlsxwriter/test/comparison/test_quote_name10.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
###############################################################################
#
# Tests for XlsxWriter.
#
# SPDX-License-Identifier: BSD-2-Clause
# Copyright (c), 2013-2023, John McNamara, jmcnamara@cpan.org
#

from ..excel_comparison_test import ExcelComparisonTest
from ...workbook import Workbook


class TestCompareXLSXFiles(ExcelComparisonTest):
"""
Test file created by XlsxWriter against a file created by Excel.
"""

def setUp(self):

self.set_filename("quote_name10.xlsx")

def test_create_file(self):
"""Test the creation of a simple XlsxWriter file."""

workbook = Workbook(self.got_filename)

sheet_name = "Sh.eet.1"

worksheet = workbook.add_worksheet(sheet_name)
chart = workbook.add_chart({"type": "column"})

chart.axis_ids = [46905600, 46796800]

data = [
[1, 2, 3, 4, 5],
[2, 4, 6, 8, 10],
[3, 6, 9, 12, 15],
]

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

worksheet.repeat_rows(0, 1)
worksheet.set_portrait()
worksheet.vertical_dpi = 200

chart.add_series({"values": [sheet_name, 0, 0, 4, 0]})
chart.add_series({"values": [sheet_name, 0, 1, 4, 1]})
chart.add_series({"values": [sheet_name, 0, 2, 4, 2]})

worksheet.insert_chart("E9", chart)

workbook.close()

self.assertExcelEqual()
57 changes: 57 additions & 0 deletions xlsxwriter/test/comparison/test_quote_name11.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
###############################################################################
#
# Tests for XlsxWriter.
#
# SPDX-License-Identifier: BSD-2-Clause
# Copyright (c), 2013-2023, John McNamara, jmcnamara@cpan.org
#

from ..excel_comparison_test import ExcelComparisonTest
from ...workbook import Workbook


class TestCompareXLSXFiles(ExcelComparisonTest):
"""
Test file created by XlsxWriter against a file created by Excel.
"""

def setUp(self):

self.set_filename("quote_name11.xlsx")

def test_create_file(self):
"""Test the creation of a simple XlsxWriter file."""

workbook = Workbook(self.got_filename)

sheet_name = "Sheeté"

worksheet = workbook.add_worksheet(sheet_name)
chart = workbook.add_chart({"type": "column"})

chart.axis_ids = [46720128, 46721664]

data = [
[1, 2, 3, 4, 5],
[2, 4, 6, 8, 10],
[3, 6, 9, 12, 15],
]

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

worksheet.repeat_rows(0, 1)
worksheet.set_portrait()
worksheet.vertical_dpi = 200

chart.add_series({"values": [sheet_name, 0, 0, 4, 0]})
chart.add_series({"values": [sheet_name, 0, 1, 4, 1]})
chart.add_series({"values": [sheet_name, 0, 2, 4, 2]})

worksheet.insert_chart("E9", chart)

workbook.close()

self.assertExcelEqual()
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading

0 comments on commit e5a37a8

Please sign in to comment.