...Having a plain xml file makes it easy to read the file by yourself - just iterate through the xml nodes and take what you need...
First, in my recent (fixed branch) Lazarus version no laz_dom or laz_xmlread units, only laz2_dom or laz2_xmlread (UTF8 version units).Oh sorry, you do need laz2_dom and laz2_xmlread, my typo...
complicated, for example it can define index under row structure (column):I used my Excel 2016 to store a dummy file in Excel2003 format, and it shows that "index=2" is the (1-based) column index; it seems to be used when the stored cell block is contains empty cells. Use my demo to read the index via GetAttrValue and then set the column index c accordingly.
<Cell ss:Index="2"><Data ss:Type="String">CAT_NAME</Data></Cell>
I used my Excel 2016 to store a dummy file in Excel2003 format, and it shows that "index=2" is the (1-based) column index; it seems to be used when the stored cell block is contains empty cells. Use my demo to read the index via GetAttrValue and then set the column index c accordingly.
All the text extraction is done by the xml parser in laz2_xmlread. It probably requires some effort to modifiy this.
"because ";" missing :) First of all I need to check and repair all errors in the xml files.
I cannot reproduce this error. There was an error in writing "rich-text" formatted cells (fixed in r7034)...
r7034 raised exception too, see picture.Hmmm... You are using the excelxmlwrite demo which comes with this revision? Is your Lazarus 32 bit or 64 bit? You seem to be on Windows 7?
I'm sorry, but I have a new question, but I think the answer is "no". :)No problem.
If I open an office xml file with your great component, and after save it (without any changes), the result xml file is different from the original (like as MS Excel). My queston is, is possible anyhow, the saved file let be same as the original file?
For example, if I changed only one cell, then the best for me, if only one line changed in the xml... and only the data value, between > <
But I think It's not "normal" usage. Sorry for this question.
Windows 7 x64, Lazarus x86.I see. What is "de./du."? Something like "AM/PM"? In this case, this format modifier is not supported ATM, and you should switch to a 24-hour format.
And even when I'll be finished it is still possible that the file will change after write-back because there a many details in these files which I don't understand. The same is true for the standard formats such as xlsx or ods.
Windows 7 x64, Lazarus x86.I see. What is "de./du."? Something like "AM/PM"? In this case, this format modifier is not supported ATM, and you should switch to a 24-hour format.
LongTimeFormat: h:nn:ss
ShortTimeFormat: h:nn
TimeAMString: de.
TimePMString: du.
Windows 7 x64, Lazarus x86.I see. What is "de./du."? Something like "AM/PM"? In this case, this format modifier is not supported ATM, and you should switch to a 24-hour format.
The reason is the same isue for which you posted a question somewhere else: Using laz2_dom and laz2_xmlread, how can I retrieve the undecoded xml child nodes of that strange <ss:Data> node
Invalid index value in Row node: 11 (before: 11)
<Row ss:Index="11" ss:AutoFitHeight="1">
<Cell>
<Data ss:Type="String">Writing current date/time:</Data>
</Cell>
</Row>
Assuming that we are talking of the same file the 'ss:Index="11"' cannot be removed because there is an empty row before #11. Row indexes can only be skipped when they follow each other without gaps. Of course, I could add empty row nodes to keep the indexes in sequence, but Excel is not doing it, so why should fpspreadsheet do it?Quote<Row ss:Index="11" ss:AutoFitHeight="1">
<Cell>
<Data ss:Type="String">Writing current date/time:</Data>
</Cell>
</Row>
The problem is, the ss:Index="11" is unnecessary, because this row index is 11 anyway. If I resave your xml file with the excel, the ss:Index="11" is certainly disappear.
Assuming that we are talking of the same file the 'ss:Index="11"' cannot be removed because there is an empty row before #11.
<Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="5" x:FullColumns="1"
x:FullRows="1">
<Row>
<Cell><Data ss:Type="String">a</Data></Cell>
</Row>
<Row ss:Index="5">
<Cell><Data ss:Type="String">b</Data></Cell>
</Row>
</Table>
When I re-save the file in Excel the ss:Index="11" stays in the file. So maybe your file is somehow different from mine? Can you zip the file and post it?