Source code for openpyxl.reader.strings

# 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


[docs] 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
[docs] 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