34 int verbose=0;
if(status!=NULL) verbose=status->
verbose;
35 if(verbose>0) printf(
"%s()\n", __func__);
45 char *cptr, tunit[128], cunit[128];
56 if(cptr!=NULL) {*cptr=
'c'; cptr++; *cptr=
'c';}
60 if(verbose>2) printf(
"constructing TAC names\n");
64 n=fprintf(fp,
"<?xml version=\"1.0\"?>\n");
69 fprintf(fp,
"<ss:Workbook xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\">\n");
70 fprintf(fp,
" <ss:Styles>\n");
71 fprintf(fp,
" <ss:Style ss:ID=\"1\">\n");
72 fprintf(fp,
" <ss:Font ss:Bold=\"1\"/>\n");
73 fprintf(fp,
" </ss:Style>\n");
74 fprintf(fp,
" </ss:Styles>\n");
75 fprintf(fp,
" <ss:Worksheet ss:Name=\"Sheet1\">\n");
76 fprintf(fp,
" <ss:Table>\n");
82 for(
int i=0; i<n; i++) fprintf(fp,
" <ss:Column ss:Width=\"80\"/>\n");
85 fprintf(fp,
" <ss:Row ss:StyleID=\"1\">\n");
87 fprintf(fp,
" <ss:Cell>\n");
88 fprintf(fp,
" <ss:Data ss:Type=\"String\">time[%s]</ss:Data>\n", tunit);
89 fprintf(fp,
" </ss:Cell>\n");
91 fprintf(fp,
" <ss:Cell>\n");
92 fprintf(fp,
" <ss:Data ss:Type=\"String\">start[%s]</ss:Data>\n", tunit);
93 fprintf(fp,
" </ss:Cell>\n");
94 fprintf(fp,
" <ss:Cell>\n");
95 fprintf(fp,
" <ss:Data ss:Type=\"String\">end[%s]</ss:Data>\n", cunit);
96 fprintf(fp,
" </ss:Cell>\n");
98 for(
int ri=0; ri<tac->
tacNr; ri++) {
100 char *nptr=tac->
c[ri].
name;
102 if(senc!=NULL) nptr=senc;
103 fprintf(fp,
" <ss:Cell>\n");
105 fprintf(fp,
" <ss:Data ss:Type=\"String\">%s[%s]</ss:Data>\n", nptr, cunit);
107 fprintf(fp,
" <ss:Data ss:Type=\"String\">%s</ss:Data>\n", nptr);
108 fprintf(fp,
" </ss:Cell>\n");
109 if(senc!=NULL) free(senc);
112 fprintf(fp,
" <ss:Cell>\n");
113 fprintf(fp,
" <ss:Data ss:Type=\"String\">weight</ss:Data>\n");
114 fprintf(fp,
" </ss:Cell>\n");
116 n=fprintf(fp,
" </ss:Row>\n");
123 if(verbose>2) printf(
"writing data table\n");
124 for(
int fi=0; fi<tac->
sampleNr; fi++) {
126 fprintf(fp,
" <ss:Row>\n");
132 double v;
if(tac->
isframe==0) v=tac->
x[fi];
else v=tac->
x1[fi];
133 fprintf(fp,
" <ss:Cell>\n");
134 if(isnan(v)) fprintf(fp,
" <ss:Data ss:Type=\"String\"></ss:Data>\n");
135 else fprintf(fp,
" <ss:Data ss:Type=\"Number\">%g</ss:Data>\n", v);
136 fprintf(fp,
" </ss:Cell>\n");
140 fprintf(fp,
" <ss:Cell>\n");
141 if(isnan(v)) fprintf(fp,
" <ss:Data ss:Type=\"String\"></ss:Data>\n");
142 else fprintf(fp,
" <ss:Data ss:Type=\"Number\">%g</ss:Data>\n", v);
143 fprintf(fp,
" </ss:Cell>\n");
147 for(
int ri=0; ri<tac->
tacNr; ri++) {
148 fprintf(fp,
" <ss:Cell>\n");
149 if(isnan(tac->
c[ri].
y[fi])) fprintf(fp,
" <ss:Data ss:Type=\"String\"></ss:Data>\n");
150 else fprintf(fp,
" <ss:Data ss:Type=\"Number\">%g</ss:Data>\n", tac->
c[ri].
y[fi]);
151 fprintf(fp,
" </ss:Cell>\n");
156 fprintf(fp,
" <ss:Cell>\n");
157 if(isnan(tac->
w[fi])) fprintf(fp,
" <ss:Data ss:Type=\"String\"></ss:Data>\n");
158 else fprintf(fp,
" <ss:Data ss:Type=\"Number\">%g</ss:Data>\n", tac->
w[fi]);
159 fprintf(fp,
" </ss:Cell>\n");
162 fprintf(fp,
" </ss:Row>\n");
166 fprintf(fp,
" </ss:Table>\n");
167 fprintf(fp,
" </ss:Worksheet>\n");
168 n=fprintf(fp,
"</ss:Workbook>\n");