Jim Tinlin wrote: |
Stefan Ritt wrote: |
Andreas Luedeke wrote: |
Yes, you're right: the text field is only exported in XML and Raw mode.
It is questionable how EXCEL should cope with HTML or ELCode output from the text fields.
But I admit that this would be a useful feature for logbooks that only use plain text entries. And it is simple to implement.
I've attached a patch to elogd.c from elog-2.9.2-2081 that adds a third CVS mode 'CSV (";" separated) + Text'.
(This string has not yet been added to the localization.)
As far as I've tested it works fine to import the text to OpenOffice and EXCEL, even with multiple text lines and HTML code in the text.
Of course the spreadsheet programs just display the HTML source.
Stefan, do you think this should be added to the official branch?
 ⇄
Detect language » English
⇄
Detect language » English
|
Hi Jim, can you confirm that this works for you? If so, I'm willing to incorporate the patch into the distribution.
|
Has this been added yet?
I don't have the means to create an executable for Windows, if someone does I can give it a try...it sounds/looks like it will work.
Thanks!
|
Hi Jim, I've incorporated the patch to our production server about a week ago.
I've agreed with Stefan that he'll add it, when it proved to run stable for a while.
Until now it appears to work fine. I think Stefan will add it to the distribution soon.
But I won't touch any Windows systems, you'll need to wait for someone else to compile it for you.
Maybe some skilled Windows user want to give it a try: i've attached the changes in the elogd.c file from v2.9.2-2481,
the modified file can be currently downloaded from http://people.web.psi.ch/luedeke/public/tmp/elogd.c
⇄
Detect language » English
Andreas
⇄
Detect language » English
⇄
Detect language » English
⇄
Detect language » English
|
11597c11597
< rsprintf("<tr><td class=\"form1\"><table><tr><td valign=\"top\" class=\"form1\">\n");
---
> rsprintf("<tr><td class=\"form1\">\n");
11599c11599
< rsprintf("<b>%s:</b> ", loc("Mode"));
---
> rsprintf("<b>%s:</b> ", loc("Mode"));
11609c11609
< rsprintf("<label for=\"full\">%s </label> \n", loc("Display full entries"));
---
> rsprintf("<label for=\"full\">%s </label>\n", loc("Display full entries"));
11615c11615
< rsprintf("<label for=\"summary\">%s </label> \n", loc("Summary only"));
---
> rsprintf("<label for=\"summary\">%s </label>\n", loc("Summary only"));
11622c11622
< rsprintf("<label for=\"summary\">%s </label> \n", loc("Summary"));
---
> rsprintf("<label for=\"summary\">%s </label>\n", loc("Summary"));
11631c11631
< rsprintf("</td><td valign=\"top\" class=\"form1\"><b>%s:</b> ", loc("Export to"));
---
> rsprintf("<b>%s:</b> ", loc("Export to"));
11637c11637
< rsprintf("<label for=\"CSV1\">%s </label> \n", loc("CSV (\",\" separated)"));
---
> rsprintf("<label for=\"CSV1\">%s </label>\n", loc("CSV (\",\" separated)"));
11643,11649c11643
< rsprintf("<label for=\"CSV2\">%s </label> \n", loc("CSV (\";\" separated)"));
<
< if (strieq(mode, "CSV3"))
< rsprintf("<input type=radio id=\"CSV3\" name=\"mode\" value=\"CSV3\" checked>");
< else
< rsprintf("<input type=radio id=\"CSV3\" name=\"mode\" value=\"CSV3\">");
< rsprintf("<label for=\"CSV3\">%s </label> \n", loc("CSV (\";\" separated) + Text"));
---
> rsprintf("<label for=\"CSV2\">%s </label>\n", loc("CSV (\";\" separated)"));
11655c11649
< rsprintf("<label for=\"XML\">XML </label> \n");
---
> rsprintf("<label for=\"XML\">XML </label>\n");
11661c11655
< rsprintf("<label for=\"Raw\">Raw </label> \n");
---
> rsprintf("<label for=\"Raw\">Raw </label>\n");
11663c11657
< rsprintf("</td>\n");
---
> rsprintf("</td></tr>\n");
11665c11659
< rsprintf("<td valign=\"top\" class=\"form2\"><b>%s:</b> ", loc("Options"));
---
> rsprintf("<tr><td class=\"form2\"><b>%s:</b> ", loc("Options"));
11707c11701
< rsprintf("</td></tr></table></td></tr>\n");
---
> rsprintf("</td></tr>\n");
19535c19529
< csv = strieq(mode, "CSV1") || strieq(mode, "CSV2") || strieq(mode, "CSV3");
---
> csv = strieq(mode, "CSV1") || strieq(mode, "CSV2");
20266,20268c20260
< } else {
< if (strieq(mode, "CSV3"))
< rsprintf(";\"Text\"");
---
> } else
20270d20261
< }
20973,20987c20964
< } else {
< if (strlen(text)>0 && strieq(mode, "CSV3")) {
< rsprintf(";");
< strlcpy(str, text, sizeof(str));
< rsputs("\"");
< pt1 = str;
< while ((pt2 = strchr(pt1, '"')) != NULL) {
< *pt2 = 0;
< rsputs(pt1);
< rsputs("\"\"");
< pt1 = pt2 + 1;
< }
< rsputs(pt1);
< rsputs("\"");
< }
---
> } else
20989d20965
< }
|