We still use the UNO API formula and token sequences in a number of places in calc's OOXML import (sc/source/filter/oox).
This task is about replacing the existing import with one based on ScCompiler and ScTokenArray. We have done that already with a number of places and now we should finish that task.
So the few things that I noted that make these things a bit more complicated than a simple replace:
* the BIFF12 import contains a formula compiler that works on the UNO API formulas and needs to be replaced with one based on ScTokens
* translating several times between ScTokenArray and TokenSequence
I think the first step should be to switch the BIFF12 import to ScTokens (as parallel implementation) and then slowly switch all callers to ScCompiler and the new BIFF12 compiler.
Markus Mohrhard committed a patch related to this issue.
It has been pushed to "master":
replace import with direct ScCompiler calls, related tdf#91367
It will be available in 5.0.0.
The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
Affected users are encouraged to test the fix and report feedback.
Migrating Whiteboard tags to Keywords: (easyHack difficultyBeginner skillCpp )
JanI is default CC for Easy Hacks (Add Jan; remove LibreOffice Dev List from CC)
I want try to fix this.
How I must parse formula to ScTokenArray?
For example sc/source/filter/oox/condformatbuffer.cxx:
492: ScAddress aBaseAddr = mrCondFormat.getRanges().getBaseAddress();
493: ApiTokenSequence aTokens = getFormulaParser().importFormula( aBaseAddr, rFormula ); // <------ here
494: maModel.maFormulas.push_back( aTokens );
A polite ping, still working on this issue?
(In reply to jan iversen from comment #6)
> A polite ping, still working on this issue?
I apologize for the absence. There was no answer to the question and I was not able to solve the problem that would apply for GSOC. Now I'm back to finish.
A polite ping, still working ?
I want to work on this issue, but I need a mentor. I turned to Markus Mohrhard, but he's not answering email. And I can't to google the information I need.
(In reply to Apachev Ivan from comment #9)
> I'm sorry.
> I want to work on this issue, but I need a mentor. I turned to Markus
> Mohrhard, but he's not answering email. And I can't to google the
> information I need.
I have no email from you in my mail folder. How can I help you?
(In reply to Markus Mohrhard from comment #10)
> (In reply to Apachev Ivan from comment #9)
> > I'm sorry.
> > I want to work on this issue, but I need a mentor. I turned to Markus
> > Mohrhard, but he's not answering email. And I can't to google the
> > information I need.
> I have no email from you in my mail folder. How can I help you?
I sent message you to firstname.lastname@example.org
I can repeat my email.
A polite ping, still working on this patch ?
(the email you used to markus, seems correct).
Unassing due to lack of work
I'd like to work on this, is this still open? If yes, then can anyone provide some code pointers?
Probably best to start with is taking a look at commit c43a25a7268c1b6ab81e9ba694a1f22223a24afa mentioned in comment 1 and see if other occurrences of ScTokenConversion::ConvertToTokenArray() can be replaced similarly.