openprxl 0.1.0

A Rust spreadsheet library inspired by Python's openpyxl
Documentation
//! XML namespace constants and helper functions.

pub const NS_MAIN: &str = "http://schemas.openxmlformats.org/spreadsheetml/2006/main";
pub const NS_RELS: &str = "http://schemas.openxmlformats.org/package/2006/relationships";
pub const NS_CONTENT_TYPES: &str = "http://schemas.openxmlformats.org/package/2006/content-types";
pub const NS_CORE_PROPS: &str = "http://schemas.openxmlformats.org/package/2006/metadata/core-properties";
pub const NS_DC: &str = "http://purl.org/dc/elements/1.1/";
pub const NS_DCTERMS: &str = "http://purl.org/dc/terms/";
pub const NS_XSI: &str = "http://www.w3.org/2001/XMLSchema-instance";

pub mod shared_strings;
pub mod styles;
pub mod workbook;
pub mod worksheet;

/// Create a quick-xml writer that pretty-prints XML.
pub fn writer<W: std::io::Write>(sink: W) -> quick_xml::Writer<W> {
    quick_xml::Writer::new_with_indent(sink, b' ', 2)
}

/// Write an escaped text node.
pub fn write_text<W: std::io::Write>(
    writer: &mut quick_xml::Writer<W>,
    text: &str,
) -> crate::error::Result<()> {
    use quick_xml::events::{BytesText, Event};
    let escaped = quick_xml::escape::escape(text);
    writer.write_event(Event::Text(BytesText::from_escaped(escaped)))?;
    Ok(())
}