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_global_settings;
35 class import_shared_strings;
37 class pivot_collection;
67 sheet* append_sheet(
const pstring& sheet_name, row_t row_size, col_t col_size);
69 sheet* get_sheet(sheet_t sheet_pos);
70 const sheet* get_sheet(sheet_t sheet_pos)
const;
82 virtual void dump_flat(
const std::string& outdir)
const override;
90 virtual void dump_html(const ::std::string& outdir)
const override;
92 virtual void dump_json(const ::std::string& outdir)
const override;
94 virtual void dump_csv(
const std::string& outdir)
const override;
100 virtual void dump_check(std::ostream& os)
const;
102 sheet_t get_sheet_index(
const pstring& name)
const;
103 pstring get_sheet_name(sheet_t sheet_pos)
const;
105 size_t sheet_size()
const;
107 void set_origin_date(
int year,
int month,
int day);
110 void set_formula_grammar(formula_grammar_t grammar);
111 formula_grammar_t get_formula_grammar()
const;
113 const ixion::formula_name_resolver* get_formula_name_resolver()
const;
115 ixion::model_context& get_model_context();
116 const ixion::model_context& get_model_context()
const;
135 void insert_dirty_cell(
const ixion::abs_address_t& pos);
138 std::unique_ptr<document_impl> mp_impl;