mirror of
https://github.com/tfussell/xlnt.git
synced 2024-03-22 13:11:17 +08:00
code optimized for s attribut cell / row format
improve the performance
This commit is contained in:
parent
f423c6e3fe
commit
b21b856e68
|
@ -201,9 +201,9 @@ cell xlsx_consumer::read_cell()
|
||||||
auto has_type = parser().attribute_present("t");
|
auto has_type = parser().attribute_present("t");
|
||||||
auto type = has_type ? parser().attribute("t") : "n";
|
auto type = has_type ? parser().attribute("t") : "n";
|
||||||
|
|
||||||
auto has_format = parser().attribute_present("s");
|
if (parser().attribute_present("s"))
|
||||||
auto format_id = static_cast<std::size_t>(has_format ? std::stoull(parser().attribute("s")) : 0LL);
|
cell.format(target_.format(std::stoull(parser().attribute("s"))));
|
||||||
|
|
||||||
auto has_value = false;
|
auto has_value = false;
|
||||||
auto value_string = std::string();
|
auto value_string = std::string();
|
||||||
|
|
||||||
|
@ -286,11 +286,6 @@ cell xlsx_consumer::read_cell()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (has_format)
|
|
||||||
{
|
|
||||||
cell.format(target_.format(format_id));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!in_element(qn("spreadsheetml", "row")))
|
if (!in_element(qn("spreadsheetml", "row")))
|
||||||
{
|
{
|
||||||
expect_end_element(qn("spreadsheetml", "row"));
|
expect_end_element(qn("spreadsheetml", "row"));
|
||||||
|
@ -579,9 +574,9 @@ void xlsx_consumer::read_worksheet_sheetdata()
|
||||||
|
|
||||||
auto has_type = parser().attribute_present("t");
|
auto has_type = parser().attribute_present("t");
|
||||||
auto type = has_type ? parser().attribute("t") : "n";
|
auto type = has_type ? parser().attribute("t") : "n";
|
||||||
|
|
||||||
auto has_format = parser().attribute_present("s");
|
if (parser().attribute_present("s"))
|
||||||
auto format_id = static_cast<std::size_t>(has_format ? std::stoull(parser().attribute("s")) : 0LL);
|
cell.format(target_.format(std::stoull(parser().attribute("s"))));
|
||||||
|
|
||||||
auto has_value = false;
|
auto has_value = false;
|
||||||
auto value_string = std::string();
|
auto value_string = std::string();
|
||||||
|
@ -665,10 +660,6 @@ void xlsx_consumer::read_worksheet_sheetdata()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (has_format)
|
|
||||||
{
|
|
||||||
cell.format(target_.format(format_id));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
expect_end_element(qn("spreadsheetml", "row"));
|
expect_end_element(qn("spreadsheetml", "row"));
|
||||||
|
|
Loading…
Reference in New Issue
Block a user