Skip to main content

ironcalc/export/
shared_strings.rs

1use ironcalc_base::types::Workbook;
2
3use super::{escape::escape_xml, xml_constants::XML_DECLARATION};
4
5pub(crate) fn get_shared_strings_xml(model: &Workbook) -> String {
6    let mut shared_strings: Vec<String> = vec![];
7    let count = &model.shared_strings.len();
8    let unique_count = &model.shared_strings.len();
9    for shared_string in &model.shared_strings {
10        shared_strings.push(format!("<si><t>{}</t></si>", escape_xml(shared_string)));
11    }
12    format!("{}\n\
13      <sst xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" count=\"{count}\" uniqueCount=\"{unique_count}\">\
14        {}\
15      </sst>", XML_DECLARATION, shared_strings.join(""))
16}