8 #ifndef INCLUDED_ORCUS_SPREADSHEET_DOCUMENT_HPP
9 #define INCLUDED_ORCUS_SPREADSHEET_DOCUMENT_HPP
11 #include "orcus/env.hpp"
12 #include "orcus/interface.hpp"
13 #include "orcus/spreadsheet/types.hpp"
20 class formula_name_resolver;
32 namespace spreadsheet {
34 class import_shared_strings;
36 class pivot_collection;
39 struct document_config;
62 const styles& get_styles()
const;
67 sheet* append_sheet(
const pstring& sheet_name, row_t row_size, col_t col_size);
70 sheet* get_sheet(sheet_t sheet_pos);
71 const sheet* get_sheet(sheet_t sheet_pos)
const;
80 virtual void dump(dump_format_t format,
const std::string& output)
const override;
84 void dump_flat(
const std::string& outdir)
const;
92 void dump_html(const ::std::string& outdir)
const;
94 void dump_json(const ::std::string& outdir)
const;
96 void dump_csv(
const std::string& outdir)
const;
102 virtual void dump_check(std::ostream& os)
const override;
104 sheet_t get_sheet_index(
const pstring& name)
const;
105 pstring get_sheet_name(sheet_t sheet_pos)
const;
107 size_t sheet_size()
const;
109 void set_origin_date(
int year,
int month,
int day);
112 void set_formula_grammar(formula_grammar_t grammar);
113 formula_grammar_t get_formula_grammar()
const;
115 const ixion::formula_name_resolver* get_formula_name_resolver()
const;
117 ixion::model_context& get_model_context();
118 const ixion::model_context& get_model_context()
const;
140 void insert_dirty_cell(
const ixion::abs_address_t& pos);
143 std::unique_ptr<document_impl> mp_impl;