Skip to content

Commit 1099b0b

Browse files
committed
fixes duplicate table names
1 parent efdddeb commit 1099b0b

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

bmsdna/table_rendering/excel.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ def render_into_sheet(
3434
*,
3535
translator: Callable[[str, str], str] | None = None,
3636
offset_rows=0,
37+
autofit=True,
38+
table_name: str | None = None,
3739
) -> "Worksheet":
3840
try:
3941
import polars as pl
@@ -116,21 +118,28 @@ def render_into_sheet(
116118
ws.write(row_ind, i, value, formats[i])
117119

118120
assert ws.name is not None
119-
121+
if not table_name:
122+
table_name = ws.name.replace(" ", "_")
123+
existing_names = set(t["name"].lower() for t in ws.tables if t.get("name"))
124+
cnt = 2
125+
while table_name.lower() in existing_names:
126+
table_name = ws.name.replace(" ", "_") + "_" + str(cnt)
127+
cnt += 1
120128
ws.add_table(
121129
offset_rows,
122130
0,
123131
row_ind,
124132
len(configs) - 1,
125133
{
126-
"name": ws.name.replace(" ", "_"),
134+
"name": table_name,
127135
"style": "Table Style Medium 2",
128136
"columns": [
129137
{"header": config.get_header(translator)} for config in configs
130138
],
131139
},
132140
)
133-
ws.autofit()
141+
if autofit:
142+
ws.autofit()
134143

135144
fp = sheet_options.get("freeze_panes", None)
136145
if fp:

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "bmsdna-table-rendering"
3-
version = "0.3.6"
3+
version = "0.3.7"
44
description = ""
55
authors = [{ name = "Adrian Ehrsam", email = "adrian.ehrsam@bmsuisse.ch" }]
66
dependencies = [

0 commit comments

Comments
 (0)