On 8/13/15, Blondeau Vincent <vincent.blond...@worldline.com> wrote: > Hi, > > Look at TabularCell>>extractFromXml: to have some hint about the standard > values of the parameters.
I factores out self extractDataFromXml: aXMLElement. extractFromXml: aXMLElement self style: (aXMLElement attributeAt: 's') asString. self type: ((aXMLElement attributeAt: 't') asString ifEmpty: [ nil ]). self extractDataFromXml: aXMLElement. self formula: ((aXMLElement elementAt: 'f') ifNotNil: [ :e | e firstNode asString ]) extractDataFromXml: aXMLElement self data: (self type = 's' ifTrue: [ (self stringAt: ((aXMLElement elementAt: 'v') ifNotNil: [ :e | e firstNode ifNotNil: [ :s | s asString ] ])) asString ] ifFalse: [ (aXMLElement elementAt: 'v') ifNotNil: [ :e | e firstNode ifNotNil: [ :s | s asString ] ] ]) type may be 's' (for shared string) or 'inline' for inline string. But what is 'v'? In the case of a inline string I have for example <row r="1"> <c r="A1" t="inlineStr"> <is><t>abcdefghijklmnopqrstuvwxyz 1234567890</t></is> </c> I'd like to compile a short summary of the meaning of these one-letter tags. > Don't hesitate to put some comments in the code with the discoveries you > made. Sure > Vincent > > > -----Message d'origine----- > > De : Pharo-users [mailto:pharo-users-boun...@lists.pharo.org] De > la part > > de H. Hirzel > > Envoyé : jeudi 13 août 2015 12:39 > > À : Any question about pharo is welcome > > Objet : Re: [Pharo-users] Tabular: XLSX import > > > > Answering my own question: > > > > Another value for t is > > > > t="inlineStr" > > > > <row r="1"> > > <c r="A1" t="inlineStr"> > > <is><t>abcdefghijklmnopqrstuvwxyz 1234567890</t></is> </c> </row> > > > > So for the export I will ignore the construction of a file > > > > sharedStrings.xml > > > > at the moment. > > > > On 8/13/15, H. Hirzel <hannes.hir...@gmail.com> wrote: > > > The attribute t="s" of a cell c seems to indicate that the > content has > > > to be interpreted as a shared string. > > > > > > XLSXImporter>>resolveSharedStrings > > > "Replace shared strings pointers to real strings" > > > workbook worksheets do:[:worksheet| > > > worksheet cells do:[:cell| > > > ((cell attributeAt: #xlsx:t) = 's') > > > ifTrue:[cell data: (sharedStrings > at: (cell data > > asNumber + 1))] > > > "XLSX uses 0-based arrays" > > > ] > > > ] > > > > > > On 8/13/15, H. Hirzel <hannes.hir...@gmail.com> wrote: > > >> For the shared strings in sheet1.xml for example > > >> > > >> <c r="A1" s="1" t="s"> > > >> > > >> what do the attributes s and t stand for? > > >> > > >> > > >> <row r="1" customFormat="false" ht="35.05" hidden="false" > > >> customHeight="false" outlineLevel="0" collapsed="false"> <c > r="A1" > > >> s="1" t="s"> <v>0</v> </c> </row> > > >> > > >> <row r="5" customFormat="false" ht="79.85" hidden="false" > > >> customHeight="false" outlineLevel="0" collapsed="false"> <c > r="B5" > > >> s="1" t="s"> <v>1</v> </c> </row> > > >> > > >> > > >> On 8/13/15, H. Hirzel <hannes.hir...@gmail.com> wrote: > > >>> http://ss3.gemtalksystems.com/ss/Tabular/Tabular- > > HannesHirzel.52.mcz > > >>> 47 test run, 37 passes. > > >>> > > >>> > > >>> Currently I have a fixed string > > >>> > > >>> TabularXSLXExport>>sharedStrings_xml > > >>> ^'<?xml version="1.0" encoding="UTF-8" standalone="yes"?> > <sst > > >>> > > xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" > > >>> count="1" uniqueCount="1"> > > >>> <si><t> </t></si> > > >>> </sst>'. > > >>> > > >>> How far can I safely ignore constructing a proper > > >>> xl/sharedStrings.xml in the archive? > > >>> > > >>> > > >>> > > >>> On 8/13/15, H. Hirzel <hannes.hir...@gmail.com> wrote: > > >>>> Found a useful summary about for generating XLSX files > > >>>> > > >>>> > http://stackoverflow.com/questions/6055430/how-to-create-xlsx- > > file- > > >>>> without-using-any-excel-library-php/18820405#18820405 > > >>>> > > >>>> On 8/13/15, H. Hirzel <hannes.hir...@gmail.com> wrote: > > >>>>> http://ss3.gemtalksystems.com/ss/Tabular/Tabular- > > HannesHirzel.50.m > > >>>>> cz > > >>>>> > > >>>>> Another question is about the > > >>>>> > > >>>>> #colspan: property of a cell > > >>>>> > > >>>>> > > >>>>> (wsheet cells at: 1 @ 1) colspan: 1. > > >>>>> > > >>>>> actually makes cell A1 span 2 columns. > > >>>>> > > >>>>> Is this OK according to the standard? > > >>>>> > > >>>>> > > >>>>> > > >>>>> > > >>>>> TabularXLSXExportTest>>testExport7 > > >>>>> > > >>>>> | wbk wsheet | > > >>>>> wbk := TabularWorkbook new. > > >>>>> self assert: (wbk worksheets isEmpty). > > >>>>> > > >>>>> wsheet := TabularWorksheet new. > > >>>>> wsheet > > >>>>> at: 1 @ 1 putData: 'aaa'; > > >>>>> at: 3 @ 1 putData: 'ccc'. > > >>>>> (wsheet cells at: 1 @ 1) colspan: 1. > > >>>>> > > >>>>> wbk worksheets add: wsheet. > > >>>>> TabularXSLXExport workbook: wbk fileName: fname7. > > >>>>> > > >>>>> "manual inspection shows that the exported file is > fine" > > >>>>> "But is the colspan command fine? Add a colspan test > to TabularCell" > > >>>>> > > >>>>> > > >>>>> On 8/13/15, H. Hirzel <hannes.hir...@gmail.com> wrote: > > >>>>>> Hello Jurij and Vincent > > >>>>>> > > >>>>>> I am working on extending the export function (export of > several > > >>>>>> worksheets). > > >>>>>> > > >>>>>> For this I am adding some more tests currently and I'd like > to > > >>>>>> have your feedback on some of the basic functions > regarding > > >>>>>> initial values. > > >>>>>> > > >>>>>> http://ss3.gemtalksystems.com/ss/Tabular/Tabular- > > HannesHirzel.49. > > >>>>>> mcz > > >>>>>> (41 tests run, 32 passes) > > >>>>>> > > >>>>>> in particular on class TabularWorksheetTest (3 tests) > > >>>>>> > > >>>>>> We have for example > > >>>>>> > > >>>>>> > > >>>>>> Test which passes > > >>>>>> > > >>>>>> testCellsReadingEmptyCell0 > > >>>>>> "accessing a cell without data" > > >>>>>> > > >>>>>> ws col: 1 row: 1 putData: 11. > > >>>>>> ws col: 2 row: 1 putData: 21. > > >>>>>> > > >>>>>> self assert: (ws col: 1 row: 1) data equals: 11. > > >>>>>> self assert: (ws col: 2 row: 1) data equals: 21. > > >>>>>> > > >>>>>> self assert: ((ws col: 3 row: 1) isNil). "Is this > OK to have > > >>>>>> nil returned?" > > >>>>>> > > >>>>>> > > >>>>>> > > >>>>>> Test which does not pass > > >>>>>> > > >>>>>> testCellsReadingEmptyCell > > >>>>>> > > >>>>>> self assert: ((ws col: 100 row: 100) data =''). > > >>>>>> > > >>>>>> "probably should return an empty string" > > >>>>>> > > >>>>>> > > >>>>>> Comments of others are invited as well. > > >>>>>> > > >>>>>> -- Hannes > > >>>>>> > > >>>>>> On 8/9/15, Юрий Мироненко <assargad...@gmail.com> wrote: > > >>>>>>> If your are using at least Pharo 4.0, you can use the > catalog > > >>>>>>> browser to load the ConfigurationOfTabular directly. > > >>>>>>> > > >>>>>>> You have only publish it for MetaRepoForPharo50, so it > didn't > > >>>>>>> work for Pharo 4. > > >>>>>>> BUt, thanks to your explanations, I just have published > in > > >>>>>>> MetaRepoForPharo40 as well - works like charm! > > >>>>>>> > > >>>>>>> 2015-08-08 12:45 GMT+03:00 Vincent BLONDEAU < > > >>>>>>> vincent.blond...@polytech-lille.net>: > > >>>>>>> > > >>>>>>>> Hi, > > >>>>>>>> > > >>>>>>>> I added the dependencies to PharoExtras/XMLWriter and > > XMLParser. > > >>>>>>>> I didn't add the dependencies before because I used > Tabular > > >>>>>>>> with Moose, and Moose already loads these > dependencies... > > >>>>>>>> > > >>>>>>>> Now it should work. I created the new 0.2 release with > the > > >>>>>>>> required dependencies. > > >>>>>>>> > > >>>>>>>> By the way, I used Versionner to create the > configuration. I > > >>>>>>>> don't know if there is a documentation but there is a > video: > > >>>>>>>> https://www.youtube.com/watch?v=cFRJDuWL-Q0 > > >>>>>>>> > > >>>>>>>> It is a very fast tool to manage your projects! > > >>>>>>>> > > >>>>>>>> If your are using at least Pharo 4.0, you can use the > catalog > > >>>>>>>> browser to load the ConfigurationOfTabular directly. > > >>>>>>>> > > >>>>>>>> Best, > > >>>>>>>> Vincent > > >>>>>>>> > > >>>>>>>> -----Message d'origine----- > > >>>>>>>> De : Pharo-users > [mailto:pharo-users-boun...@lists.pharo.org] > > >>>>>>>> De la part de H. Hirzel Envoyé : samedi 8 août 2015 10:34 > À : > > >>>>>>>> Any question about pharo is welcome Objet : Re: > [Pharo-users] > > >>>>>>>> Tabular: XLSX import > > >>>>>>>> > > >>>>>>>> If I do > > >>>>>>>> > > >>>>>>>> ConfigurationOfXMLWriter load > > >>>>>>>> > > >>>>>>>> then > > >>>>>>>> > > >>>>>>>> TabularExperimentalExport writeTestFile > > >>>>>>>> > > >>>>>>>> is fine generating an Excel file. > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> http://ss3.gemtalksystems.com/ss/Tabular/Tabular- > > HannesHirzel.2 > > >>>>>>>> 7.mcz > > >>>>>>>> > > >>>>>>>> I am currently exploring the code and trying to figure > out how > > >>>>>>>> it works. > > >>>>>>>> > > >>>>>>>> --Hannes > > >>>>>>>> > > >>>>>>>> On 8/8/15, H. Hirzel <hannes.hir...@gmail.com> wrote: > > >>>>>>>> > I understand that Юрий Мироненко asks how to construct > his > > >>>>>>>> > ConfigurationOfTabular file > > >>>>>>>> > > > >>>>>>>> > http://ss3.gemtalksystems.com/ss/Tabular.html > > >>>>>>>> > > > >>>>>>>> > So I pointed him to the Pharo By Examples book 2 > Chapter 9 > > >>>>>>>> > Managing Projects with Metacello > > >>>>>>>> > > > >>>>>>>> > > > >>>>>>>> > The Tabular project needs a XMLWriter class. I assume > the > > >>>>>>>> > regular pharoExtras is fine. I do not know. > > >>>>>>>> > > > >>>>>>>> > I am just looking at the code to see how the reading > and > > >>>>>>>> > writing of MSOffice files, Excel in this particular > case, is > > >>>>>>>> > done so far. > > >>>>>>>> > > > >>>>>>>> > For reading a TabularSAXParser is included in the > package. > > >>>>>>>> > Probably > > >>>>>>>> > not necessary. > > >>>>>>>> > > > >>>>>>>> > I moved it out here > > >>>>>>>> > http://ss3.gemtalksystems.com/ss/Tabular/Tabular- > > HannesHirzel > > >>>>>>>> > .26.mcz > > >>>>>>>> > > > >>>>>>>> > Hannes > > >>>>>>>> > > > >>>>>>>> > > > >>>>>>>> > > > >>>>>>>> > On 8/8/15, stepharo <steph...@free.fr> wrote: > > >>>>>>>> >> > > >>>>>>>> >> > > >>>>>>>> >> Le 8/8/15 09:11, H. Hirzel a écrit : > > >>>>>>>> >>> What about > > >>>>>>>> >>> http://rmod.lille.inria.fr/deepIntoPharo/index.html > > >>>>>>>> >>> > > >>>>>>>> >>> p. 163 depending on a project without Metacello > description > > p. > > >>>>>>>> >>> 164, > > >>>>>>>> >>> depending on a project with a Metacello > configuration > > >>>>>>>> >>> > > >>>>>>>> >>> In the mean time just a note that Tabular needs > XMLParser > > >>>>>>>> >>> and XMLWriter packages on > > >>>>>>>> >>> http://ss3.gemtalksystems.com/ss/Tabular.html. > > >>>>>>>> >> > > >>>>>>>> >> are you implying that there is no expression of > dependencies > > >>>>>>>> >> and that in addition it depend on a different XML > > >>>>>>>> >> Parser/Writer than pharoExtras ones? > > >>>>>>>> >> > > >>>>>>>> >> Stef > > >>>>>>>> >>> > > >>>>>>>> >>> Some class comments are welcome as well :-) > > >>>>>>>> >>> > > >>>>>>>> >>> I understand that I can read Excel files and that you > just > > >>>>>>>> >>> started to check out how to write them? > > >>>>>>>> >>> > > >>>>>>>> >>> --Hannes > > >>>>>>>> >>> > > >>>>>>>> >>> On 8/4/15, Юрий Мироненко <assargad...@gmail.com> > > wrote: > > >>>>>>>> >>>> Thank you Vincent. > > >>>>>>>> >>>> Some things is much clearer for me now. > > >>>>>>>> >>>> > > >>>>>>>> >>>> *It's shame on me that I lost all this Metacello > progress, > > >>>>>>>> >>>> especially taking into account I was on the ESUG > > >>>>>>>> >>>> conference where it was presented. > > >>>>>>>> >>>> It > > >>>>>>>> >>>> was my only conference unfortunately.* > > >>>>>>>> >>>> > > >>>>>>>> >>>> I see that you already started this job: you added > > >>>>>>>> >>>> ConfigurationOfTabular. > > >>>>>>>> >>>> What I really want to do with this configuration: > add > > >>>>>>>> >>>> dependencies to XMLParser and XMLWriter packages. > Can > > you > > >>>>>>>> >>>> help with this, please? > > >>>>>>>> >>>> > > >>>>>>>> >>>> 2015-08-04 17:19 GMT+03:00 Blondeau Vincent > > >>>>>>>> >>>> <vincent.blond...@worldline.com> > > >>>>>>>> >>>> : > > >>>>>>>> >>>> > > >>>>>>>> >>>>> Hi, > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> To add a configuration in the catalog, first you > should > > >>>>>>>> >>>>> have a configuration for your project. You can > create it > > >>>>>>>> >>>>> with the versionner if needed. > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> Second, you have to add some methods adding > > >>>>>>>> >>>>> meta-description to your project. The versionner do > it > > >>>>>>>> >>>>> for you: in the configuration list, select your > project, > > >>>>>>>> >>>>> do a right click and select add catalog methods. > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> It creates all the mandatory methods for the > catalog. You > > >>>>>>>> >>>>> now have to fill them (look at the class side of > the > > >>>>>>>> >>>>> configuration). > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> Finally, commit your configuration on your repo and > on > > >>>>>>>> >>>>> the > > >>>>>>>> >>>>> MetaRepoForPharo30/40/50 depending where your > > project is > > >>>>>>>> >>>>> working. > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> The link is here: > > >>>>>>>> >>>>> > > http://smalltalkhub.com/#!/~Pharo/MetaRepoForPharo50 > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> Once published, your project will be in the catalog > in > > >>>>>>>> >>>>> the image (Tools>catalog browser) and on the web > > >>>>>>>> >>>>> http://catalog.pharo.org/. > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> Tell me if you need help to do it, > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> Cheers, > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> Vincent > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> *De :* Pharo-users > > >>>>>>>> >>>>> [mailto:pharo-users-boun...@lists.pharo.org] > > >>>>>>>> >>>>> *De la part de* ???? ????????? > > >>>>>>>> >>>>> *Envoyé :* dimanche 2 août 2015 10:25 *À :* Any > > question > > >>>>>>>> >>>>> about pharo is welcome *Objet :* Re: [Pharo-users] > > >>>>>>>> >>>>> Tabular: XLSX import > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> It looks like I need some guidance to understand > > >>>>>>>> >>>>> contemporary packaging/deployment/versioning > system. > > I > > >>>>>>>> >>>>> know it exists, but I don't know details. Can you > kick me > > >>>>>>>> >>>>> in the right direction? > > >>>>>>>> >>>>> Maybe > > >>>>>>>> >>>>> some link? > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> 2015-08-02 11:21 GMT+03:00 Esteban Lorenzano > > >>>>>>>> >>>>> <esteba...@gmail.com>: > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> Hi, > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> it would be sooo cool to have a configuration in > the > > >>>>>>>> >>>>> catalog… > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> Esteban > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> On 01 Aug 2015, at 20:58, Юрий Мироненко > > >>>>>>>> >>>>> <assargad...@gmail.com> > > >>>>>>>> >>>>> wrote: > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> Hello. > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> Some time ago I announced Tabular > > >>>>>>>> >>>>> <http://ss3.gemtalksystems.com/ss/Tabular.html>, > some > > >>>>>>>> >>>>> effort to make a tool for spreadsheets > import/export. > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> This is short notice: Vincent Blondeau have added > XLSX > > >>>>>>>> >>>>> import functionality! > > >>>>>>>> >>>>> It's also mostly proof-of-concept now, but even at > this > > >>>>>>>> >>>>> stage it's quite usable. > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> Thanks, Vincent! > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> ------------------------------ > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> Ce message et les pièces jointes sont confidentiels > et > > >>>>>>>> >>>>> réservés à l'usage exclusif de ses destinataires. > Il peut > > >>>>>>>> >>>>> également être protégé par le secret professionnel. > Si > > >>>>>>>> >>>>> vous recevez ce message par erreur, merci d'en > avertir > > >>>>>>>> >>>>> immédiatement l'expéditeur et de le détruire. > L'intégrité > > >>>>>>>> >>>>> du message ne pouvant être assurée sur Internet, > la > > >>>>>>>> >>>>> responsabilité de Worldline ne pourra être > recherchée > > >>>>>>>> >>>>> quant au contenu de ce message. Bien que les > meilleurs > > >>>>>>>> >>>>> efforts soient faits pour maintenir cette > transmission > > >>>>>>>> >>>>> exempte de tout virus, l'expéditeur ne donne > aucune > > >>>>>>>> >>>>> garantie à cet égard et sa responsabilité ne > saurait être > > >>>>>>>> >>>>> recherchée pour tout dommage résultant d'un virus > > >>>>>>>> >>>>> transmis. > > >>>>>>>> >>>>> > > >>>>>>>> >>>>> This e-mail and the documents attached are > confidential > > >>>>>>>> >>>>> and intended solely for the addressee; it may also > be > > privileged. > > >>>>>>>> >>>>> If > > >>>>>>>> >>>>> you receive this e-mail in error, please notify > the > > >>>>>>>> >>>>> sender immediately and destroy it. > > >>>>>>>> >>>>> As > > >>>>>>>> >>>>> its integrity cannot be secured on the Internet, > the > > >>>>>>>> >>>>> Worldline liability cannot be triggered for the > message > > >>>>>>>> >>>>> content. > > >>>>>>>> >>>>> Although > > >>>>>>>> >>>>> the sender endeavours to maintain a computer > virus-free > > >>>>>>>> >>>>> network, the sender does not warrant that this > > >>>>>>>> >>>>> transmission is virus-free and will not be liable > for any > > >>>>>>>> >>>>> damages resulting from any virus transmitted. > > >>>>>>>> >>>>> > > >>>>>>>> >>> > > >>>>>>>> >> > > >>>>>>>> >> > > >>>>>>>> >> > > >>>>>>>> > > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> > > >>>>>>> > > >>>>>> > > >>>>> > > >>>> > > >>> > > >> > > > > > > > Ce message et les pièces jointes sont confidentiels et réservés à l'usage > exclusif de ses destinataires. Il peut également être protégé par le secret > professionnel. Si vous recevez ce message par erreur, merci d'en avertir > immédiatement l'expéditeur et de le détruire. L'intégrité du message ne > pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra > être recherchée quant au contenu de ce message. Bien que les meilleurs > efforts soient faits pour maintenir cette transmission exempte de tout > virus, l'expéditeur ne donne aucune garantie à cet égard et sa > responsabilité ne saurait être recherchée pour tout dommage résultant d'un > virus transmis. > > This e-mail and the documents attached are confidential and intended solely > for the addressee; it may also be privileged. If you receive this e-mail in > error, please notify the sender immediately and destroy it. As its integrity > cannot be secured on the Internet, the Worldline liability cannot be > triggered for the message content. Although the sender endeavours to > maintain a computer virus-free network, the sender does not warrant that > this transmission is virus-free and will not be liable for any damages > resulting from any virus transmitted. >