summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2015-05-27 20:24:28 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2015-05-27 20:41:45 +0200
commit106a4dc29980889c02faa526e5417b63fdce6c23 (patch)
treec5c281809391df0dd95a05a452928334eeccf945 /sc
parent5142c9226318019200ed6e055b4eb1503bd002db (diff)
support R1C1 reference for hyperlinks
Change-Id: Id9f3ae613128bb6f3895ade8b10ae24210439503
Diffstat (limited to 'sc')
-rw-r--r--sc/source/filter/xcl97/xcl97rec.cxx14
-rw-r--r--sc/source/ui/view/tabvwsh3.cxx14
2 files changed, 24 insertions, 4 deletions
diff --git a/sc/source/filter/xcl97/xcl97rec.cxx b/sc/source/filter/xcl97/xcl97rec.cxx
index 46deb7e9c2b6..f3e0af36d06c 100644
--- a/sc/source/filter/xcl97/xcl97rec.cxx
+++ b/sc/source/filter/xcl97/xcl97rec.cxx
@@ -1065,7 +1065,12 @@ sal_uInt16 parseRange(const OUString& rString, ScRange& rRange, ScDocument* pDoc
return nResult;
// try excel a1
- return rRange.Parse(rString, pDoc, formula::FormulaGrammar::CONV_XL_A1);
+ nResult = rRange.Parse(rString, pDoc, formula::FormulaGrammar::CONV_XL_A1);
+ if (nResult & SCA_VALID)
+ return nResult;
+
+ // try r1c1
+ return rRange.Parse(rString, pDoc, formula::FormulaGrammar::CONV_XL_R1C1);
}
sal_uInt16 parseAddress(const OUString& rString, ScAddress& rAddress, ScDocument* pDoc)
@@ -1082,7 +1087,12 @@ sal_uInt16 parseAddress(const OUString& rString, ScAddress& rAddress, ScDocument
return nResult;
// try excel a1
- return rAddress.Parse(rString, pDoc, formula::FormulaGrammar::CONV_XL_A1);
+ nResult = rAddress.Parse(rString, pDoc, formula::FormulaGrammar::CONV_XL_A1);
+ if ( (nResult & SCA_VALID) )
+ return nResult;
+
+ // try r1c1
+ return rAddress.Parse(rString, pDoc, formula::FormulaGrammar::CONV_XL_R1C1);
}
bool transformURL(const OUString& rOldURL, OUString& rNewURL, ScDocument* pDoc)
diff --git a/sc/source/ui/view/tabvwsh3.cxx b/sc/source/ui/view/tabvwsh3.cxx
index 30972e66422e..8fdce4451234 100644
--- a/sc/source/ui/view/tabvwsh3.cxx
+++ b/sc/source/ui/view/tabvwsh3.cxx
@@ -82,8 +82,13 @@ static sal_uInt16 lcl_ParseRange(ScRange& rScRange, const OUString& aAddress, Sc
if ( (nResult & SCA_VALID) )
return nResult;
+ // try the default calc address convention
+ nResult = rScRange.Parse(aAddress, pDoc, formula::FormulaGrammar::CONV_XL_A1);
+ if ( (nResult & SCA_VALID) )
+ return nResult;
+
// try excel a1
- return rScRange.Parse(aAddress, pDoc, ScAddress::Details(formula::FormulaGrammar::CONV_XL_A1, 0, 0));
+ return rScRange.Parse(aAddress, pDoc, formula::FormulaGrammar::CONV_XL_R1C1);
}
static sal_uInt16 lcl_ParseAddress(ScAddress& rScAddress, const OUString& aAddress, ScDocument* pDoc, sal_uInt16 /* nSlot */)
@@ -99,8 +104,13 @@ static sal_uInt16 lcl_ParseAddress(ScAddress& rScAddress, const OUString& aAddre
if ( (nResult & SCA_VALID) )
return nResult;
+ // try the default calc address convention
+ nResult = rScAddress.Parse(aAddress, pDoc, formula::FormulaGrammar::CONV_XL_A1);
+ if ( (nResult & SCA_VALID) )
+ return nResult;
+
// try excel a1
- return rScAddress.Parse(aAddress, pDoc, ScAddress::Details(formula::FormulaGrammar::CONV_XL_A1, 0, 0));
+ return rScAddress.Parse(aAddress, pDoc, formula::FormulaGrammar::CONV_XL_R1C1);
}
void ScTabViewShell::Execute( SfxRequest& rReq )