From 98668ed9478567f1bf6ad96f44c50916cb52bf9c Mon Sep 17 00:00:00 2001 From: "Zheng, Lei" Date: Fri, 22 Apr 2022 22:33:18 +0800 Subject: [PATCH] Spreadsheet: do not copy empty cell Because pasteCells() will clear empty cells in selected range --- src/Mod/Spreadsheet/App/PropertySheet.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/Mod/Spreadsheet/App/PropertySheet.cpp b/src/Mod/Spreadsheet/App/PropertySheet.cpp index 770c38d1cc..10a1c253fa 100644 --- a/src/Mod/Spreadsheet/App/PropertySheet.cpp +++ b/src/Mod/Spreadsheet/App/PropertySheet.cpp @@ -356,20 +356,21 @@ void PropertySheet::copyCells(Base::Writer& writer, const std::vector& ra writer.Stream() << "" << std::endl; writer.incInd(); for (auto range : ranges) { + auto r = range; + int count = 0; + do { + auto cell = getValue(*r); + if(cell && cell->isUsed()) + ++count; + }while(r.next()); writer.Stream() << writer.ind() << "" << std::endl; + << "\" to=\"" << range.toCellString() << "\" count=\"" << count << "\">" << std::endl; writer.incInd(); do { auto cell = getValue(*range); if (cell && cell->isUsed()) { cell->save(writer); } - else { - // The cell is empty, so when it's pasted it needs to clear the existing contents - writer.Stream() << writer.ind() << ""; - } } while (range.next()); writer.decInd(); writer.Stream() << writer.ind() << "" << std::endl;