summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sc/qa/unit/subsequent_export-test.cxx16
-rw-r--r--sc/source/filter/html/htmlimp.cxx2
2 files changed, 18 insertions, 0 deletions
diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx
index 2a7a76e244a8..8762cbcc339a 100644
--- a/sc/qa/unit/subsequent_export-test.cxx
+++ b/sc/qa/unit/subsequent_export-test.cxx
@@ -175,6 +175,7 @@ public:
#if !defined _WIN32
void testSupBookVirtualPathXLS();
#endif
+ void testAbsNamedRangeHTML();
void testSheetLocalRangeNameXLS();
void testSheetTextBoxHyperlinkXLSX();
void testFontSizeXLSX();
@@ -281,6 +282,7 @@ public:
CPPUNIT_TEST(testImageWithSpecialID);
CPPUNIT_TEST(testPreserveTextWhitespaceXLSX);
CPPUNIT_TEST(testPreserveTextWhitespace2XLSX);
+ CPPUNIT_TEST(testAbsNamedRangeHTML);
CPPUNIT_TEST(testSheetLocalRangeNameXLS);
CPPUNIT_TEST(testSheetTextBoxHyperlinkXLSX);
CPPUNIT_TEST(testFontSizeXLSX);
@@ -3325,6 +3327,20 @@ void ScExportTest::testImageWithSpecialID()
}
}
+void ScExportTest::testAbsNamedRangeHTML()
+{
+ ScDocShellRef xDocSh = loadDoc("numberformat.", FORMAT_HTML);
+ xDocSh->DoHardRecalc();
+ ScDocShellRef xDocSh2 = saveAndReload(xDocSh.get(), FORMAT_ODS);
+ xDocSh->DoClose();
+ xDocSh2->DoHardRecalc();
+
+ ScDocument& rDoc = xDocSh2->GetDocument();
+ ScRangeData* pRangeData = rDoc.GetRangeName()->findByUpperName(OUString("HTML_1"));
+ ScSingleRefData* pRef = pRangeData->GetCode()->FirstToken()->GetSingleRef();
+ CPPUNIT_ASSERT_MESSAGE("HTML_1 is an absolute reference",!pRef->IsTabRel());
+}
+
void ScExportTest::testSheetLocalRangeNameXLS()
{
ScDocShellRef xDocSh = loadDoc("named-ranges-local.", FORMAT_XLS);
diff --git a/sc/source/filter/html/htmlimp.cxx b/sc/source/filter/html/htmlimp.cxx
index a5f1f11abe4b..4957b2d381ad 100644
--- a/sc/source/filter/html/htmlimp.cxx
+++ b/sc/source/filter/html/htmlimp.cxx
@@ -102,6 +102,8 @@ void ScHTMLImport::InsertRangeName( ScDocument* pDoc, const OUString& rName, con
{
ScComplexRefData aRefData;
aRefData.InitRange( rRange );
+ aRefData.Ref1.SetFlag3D( true );
+ aRefData.Ref2.SetFlag3D( aRefData.Ref2.Tab() != aRefData.Ref1.Tab() );
ScTokenArray aTokArray;
aTokArray.AddDoubleReference( aRefData );
ScRangeData* pRangeData = new ScRangeData( pDoc, rName, aTokArray );