aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/openpyxl/reader/strings.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/openpyxl/reader/strings.py')
-rw-r--r--.venv/lib/python3.12/site-packages/openpyxl/reader/strings.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/openpyxl/reader/strings.py b/.venv/lib/python3.12/site-packages/openpyxl/reader/strings.py
new file mode 100644
index 00000000..5168f201
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/openpyxl/reader/strings.py
@@ -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