optimize code empty row cell

This commit is contained in:
sukoi26 2017-11-04 23:41:48 +01:00
parent 4a3e711a1b
commit caeadfc83c

View File

@ -2103,24 +2103,19 @@ void xlsx_producer::write_worksheet(const relationship &rel)
write_end_element(xmlns, "sheetFormatPr"); write_end_element(xmlns, "sheetFormatPr");
bool has_column_properties = false; bool has_column_properties = false;
//
auto wslowestcp = ws.lowest_column_or_props();
auto wshighestcp = ws.highest_column_or_props();
for (auto column = ws.lowest_column(); column <= ws.highest_column(); column++) for (auto column = wslowestcp; column <= wshighestcp; column++)
{
if (ws.has_column_properties(column))
{
has_column_properties = true;
break;
}
}
if (has_column_properties)
{
write_start_element(xmlns, "cols");
for (auto column = ws.lowest_column_or_props(); column <= ws.highest_column_or_props(); column++)
{ {
if (!ws.has_column_properties(column)) continue; if (!ws.has_column_properties(column)) continue;
if(!has_column_properties)
{
write_start_element(xmlns, "cols");
has_column_properties = true;
}
const auto &props = ws.column_properties(column); const auto &props = ws.column_properties(column);
write_start_element(xmlns, "col"); write_start_element(xmlns, "col");
@ -2151,7 +2146,6 @@ void xlsx_producer::write_worksheet(const relationship &rel)
} }
write_end_element(xmlns, "cols"); write_end_element(xmlns, "cols");
}
const auto hyperlink_rels = source_.manifest().relationships(worksheet_part, relationship_type::hyperlink); const auto hyperlink_rels = source_.manifest().relationships(worksheet_part, relationship_type::hyperlink);
std::unordered_map<std::string, std::string> reverse_hyperlink_references; std::unordered_map<std::string, std::string> reverse_hyperlink_references;
@ -2165,8 +2159,11 @@ void xlsx_producer::write_worksheet(const relationship &rel)
std::vector<cell_reference> cells_with_comments; std::vector<cell_reference> cells_with_comments;
write_start_element(xmlns, "sheetData"); write_start_element(xmlns, "sheetData");
// optimize
auto wslowestrp = ws.lowest_row_or_props();
auto wshighestrp = ws.highest_row_or_props();
for (auto row = ws.lowest_row_or_props(); row <= ws.highest_row_or_props(); ++row) for (auto row = wslowestrp; row <= wshighestrp; ++row)
{ {
auto first_column = constants::max_column(); auto first_column = constants::max_column();
auto last_column = constants::min_column(); auto last_column = constants::min_column();