Add xlsxwriter-based Excel generation scripts with openpyxl implementation
- Created create_excel_xlsxwriter.py and update_excel_xlsxwriter.py - Uses openpyxl exclusively to preserve Excel formatting and formulas - Updated server.js to use new xlsxwriter scripts for form submissions - Maintains all original functionality while ensuring proper Excel file handling 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
44
venv/lib/python3.12/site-packages/openpyxl/reader/strings.py
Normal file
44
venv/lib/python3.12/site-packages/openpyxl/reader/strings.py
Normal file
@@ -0,0 +1,44 @@
|
||||
# Copyright (c) 2010-2024 openpyxl
|
||||
|
||||
from openpyxl.cell.text import Text
|
||||
|
||||
from openpyxl.xml.functions import iterparse
|
||||
from openpyxl.xml.constants import SHEET_MAIN_NS
|
||||
from openpyxl.cell.rich_text import CellRichText
|
||||
|
||||
|
||||
def read_string_table(xml_source):
|
||||
"""Read in all shared strings in the table"""
|
||||
|
||||
strings = []
|
||||
STRING_TAG = '{%s}si' % SHEET_MAIN_NS
|
||||
|
||||
for _, node in iterparse(xml_source):
|
||||
if node.tag == STRING_TAG:
|
||||
text = Text.from_tree(node).content
|
||||
text = text.replace('x005F_', '')
|
||||
node.clear()
|
||||
|
||||
strings.append(text)
|
||||
|
||||
return strings
|
||||
|
||||
|
||||
def read_rich_text(xml_source):
|
||||
"""Read in all shared strings in the table"""
|
||||
|
||||
strings = []
|
||||
STRING_TAG = '{%s}si' % SHEET_MAIN_NS
|
||||
|
||||
for _, node in iterparse(xml_source):
|
||||
if node.tag == STRING_TAG:
|
||||
text = CellRichText.from_tree(node)
|
||||
if len(text) == 0:
|
||||
text = ''
|
||||
elif len(text) == 1 and isinstance(text[0], str):
|
||||
text = text[0]
|
||||
node.clear()
|
||||
|
||||
strings.append(text)
|
||||
|
||||
return strings
|
||||
Reference in New Issue
Block a user