mirror of
https://github.com/tfussell/xlnt.git
synced 2024-03-22 13:11:17 +08:00
test manifest
This commit is contained in:
parent
c1364199ee
commit
b10b2a2bd3
|
@ -148,26 +148,21 @@ bool load_workbook(xlnt::zip_file &archive, bool guess_types, bool data_only, xl
|
||||||
style_xml.load(archive.read(xlnt::constants::part_styles()).c_str());
|
style_xml.load(archive.read(xlnt::constants::part_styles()).c_str());
|
||||||
style_serializer.read_stylesheet(style_xml);
|
style_serializer.read_stylesheet(style_xml);
|
||||||
|
|
||||||
auto sheets_node = root_node.child("sheets");
|
for (auto sheet_node : root_node.child("sheets").children())
|
||||||
|
|
||||||
for (auto sheet_node : sheets_node.children())
|
|
||||||
{
|
{
|
||||||
auto rel = wb.get_relationship(sheet_node.attribute("r:id").value());
|
auto rel = wb.get_relationship(sheet_node.attribute("r:id").value());
|
||||||
auto ws = wb.create_sheet(sheet_node.attribute("name").value(), rel);
|
|
||||||
|
// TODO impelement chartsheets
|
||||||
//TODO: this is really bad
|
if(rel.get_type() == xlnt::relationship::type::chartsheet)
|
||||||
auto ws_filename = (rel.get_target_uri().substr(0, 3) != "xl/" ? "xl/" : "") + rel.get_target_uri();
|
|
||||||
|
|
||||||
auto sheet_type = wb.get_manifest().get_override_type(ws_filename);
|
|
||||||
|
|
||||||
if(rel.get_type() != xlnt::relationship::type::worksheet)
|
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto ws = wb.create_sheet(sheet_node.attribute("name").value(), rel);
|
||||||
xlnt::worksheet_serializer worksheet_serializer(ws);
|
xlnt::worksheet_serializer worksheet_serializer(ws);
|
||||||
pugi::xml_document worksheet_xml;
|
pugi::xml_document worksheet_xml;
|
||||||
worksheet_xml.load(archive.read(ws_filename).c_str());
|
worksheet_xml.load(archive.read("xl/" + rel.get_target_uri()).c_str());
|
||||||
|
|
||||||
worksheet_serializer.read_worksheet(worksheet_xml, stylesheet);
|
worksheet_serializer.read_worksheet(worksheet_xml, stylesheet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -303,6 +303,12 @@ public:
|
||||||
xlnt::override_type o;
|
xlnt::override_type o;
|
||||||
TS_ASSERT(o.get_content_type().empty());
|
TS_ASSERT(o.get_content_type().empty());
|
||||||
TS_ASSERT(o.get_part_name().empty());
|
TS_ASSERT(o.get_part_name().empty());
|
||||||
|
|
||||||
|
xlnt::manifest m;
|
||||||
|
TS_ASSERT(!m.has_default_type("xml"));
|
||||||
|
TS_ASSERT_THROWS(m.get_default_type("xml"), std::out_of_range);
|
||||||
|
TS_ASSERT(!m.has_override_type("xl/workbook.xml"));
|
||||||
|
TS_ASSERT_THROWS(m.get_override_type("xl/workbook.xml"), std::out_of_range);
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_get_bad_relationship()
|
void test_get_bad_relationship()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user