comment changes anchor() , in element()

This commit is contained in:
sukoi26 2017-02-06 23:00:45 +01:00
parent 26eacce248
commit d7486830a6
2 changed files with 42 additions and 11 deletions

View File

@ -528,14 +528,14 @@ std::pair<int, int> cell::anchor() const
for (column_t column_index = 1; column_index <= d_->column_ - 1; column_index++) for (column_t column_index = 1; column_index <= d_->column_ - 1; column_index++)
{ {
left += worksheet().cell(column_index, row()).width(); left += worksheet().column_width(column_index);
} }
double top = 0; double top = 0;
for (row_t row_index = 1; row_index <= d_->row_ - 1; row_index++) for (row_t row_index = 1; row_index <= d_->row_ - 1; row_index++)
{ {
top += worksheet().cell(column(), row_index).height(); top += worksheet().row_height(row_index);
} }
return {static_cast<int>(left), static_cast<int>(top)}; return {static_cast<int>(left), static_cast<int>(top)};

View File

@ -1345,6 +1345,28 @@ void xlsx_consumer::read_stylesheet()
new_font.strikethrough(true); new_font.strikethrough(true);
} }
} }
else if (font_property_element == qn("spreadsheetml", "outline"))
{
if (parser().attribute_present("val"))
{
new_font.outlinethrough(is_true(parser().attribute("val")));
}
else
{
new_font.outlinethrough(true);
}
}
else if (font_property_element == qn("spreadsheetml", "shadow"))
{
if (parser().attribute_present("val"))
{
new_font.shadowthrough(is_true(parser().attribute("val")));
}
else
{
new_font.shadowthrough(true);
}
}
else if (font_property_element == qn("spreadsheetml", "i")) else if (font_property_element == qn("spreadsheetml", "i"))
{ {
if (parser().attribute_present("val")) if (parser().attribute_present("val"))
@ -1575,11 +1597,11 @@ void xlsx_consumer::read_stylesheet()
auto count = parser().attribute<std::size_t>("count"); auto count = parser().attribute<std::size_t>("count");
std::size_t processed = 0; std::size_t processed = 0;
while (in_element(qn("spreadsheetml", "dxfs"))) while (in_element(current_style_element))
{ {
auto current_element = expect_start_element(xml::content::complex); auto current_element = expect_start_element(xml::content::mixed);
skip_remaining_content(current_element); skip_remaining_content(current_element);
expect_end_element(current_element);
++processed; ++processed;
} }
@ -1600,7 +1622,7 @@ void xlsx_consumer::read_stylesheet()
{ {
auto current_element = expect_start_element(xml::content::complex); auto current_element = expect_start_element(xml::content::complex);
skip_remaining_content(current_element); skip_remaining_content(current_element);
expect_end_element(current_element);
++processed; ++processed;
} }
@ -2627,11 +2649,11 @@ std::vector<std::string> xlsx_consumer::read_namespaces()
bool xlsx_consumer::in_element(const xml::qname &name) bool xlsx_consumer::in_element(const xml::qname &name)
{ {
if (parser().peek() == xml::parser::event_type::end_element || stack_.back() != name)
if ((parser().peek() == xml::parser::event_type::end_element ) && (stack_.back() == name ))
{ {
return false; return false;
} }
return true; return true;
} }
@ -2717,6 +2739,10 @@ rich_text xlsx_consumer::read_rich_text(const xml::qname &parent)
{ {
run.second.get().family(parser().attribute<std::size_t>("val")); run.second.get().family(parser().attribute<std::size_t>("val"));
} }
else if (current_run_property_element == xml::qname(xmlns, "charset"))
{
run.second.get().charset(parser().attribute<std::size_t>("val"));
}
else if (current_run_property_element == xml::qname(xmlns, "scheme")) else if (current_run_property_element == xml::qname(xmlns, "scheme"))
{ {
run.second.get().scheme(parser().attribute("val")); run.second.get().scheme(parser().attribute("val"));
@ -2726,6 +2752,11 @@ rich_text xlsx_consumer::read_rich_text(const xml::qname &parent)
run.second.get().bold( run.second.get().bold(
parser().attribute_present("val") ? is_true(parser().attribute("val")) : true); parser().attribute_present("val") ? is_true(parser().attribute("val")) : true);
} }
else if (current_run_property_element == xml::qname(xmlns, "i"))
{
run.second.get().bold(
parser().attribute_present("val") ? is_true(parser().attribute("val")) : true);
}
else if (current_run_property_element == xml::qname(xmlns, "u")) else if (current_run_property_element == xml::qname(xmlns, "u"))
{ {
if (parser().attribute_present("val")) if (parser().attribute_present("val"))