#include "xlhtml.h"
extern int first_sheet;
extern int last_sheet;
extern uni_string default_font;
extern void trim_sheet_edges(unsigned int);
extern int next_ws_title;
extern void SetupExtraction(void);
extern void update_default_font(unsigned int);
extern void OutputString(uni_string * );
extern char *lastUpdated;
extern int file_version;
extern int NoFormat;
extern int notAccurate;
extern int formula_warnings;
extern int disclaimers;
extern int NotImplemented;
extern int Unsupported;
extern int MaxWorksheetsExceeded;
extern int MaxRowExceeded;
extern int MaxColExceeded;
extern int MaxStringsExceeded;
extern int MaxFontsExceeded;
extern int MaxPalExceeded;
extern int MaxXFExceeded;
extern int MaxFormatsExceeded;
extern char colorTab[MAX_COLORS];
extern char filename[256];
extern int UnicodeStrings;
extern int CodePage;
extern char *title;
extern void update_default_alignment(unsigned int, int);
extern void output_cell( cell *, int);
extern uni_string author;
work_sheet **ws_array;
void OutputTableXML(void)
{
int i, j, k;
printf( "\n"); /* Latin-1 */
break;
case 1:
printf("windows-1252\"?>\n"); /* Microsoft */
break;
default:
printf("utf-8\"?>\n"); /* Unicode */
break;
}
SetupExtraction();
printf( "\n" );
printf( "\t\n" );
/* Here's where we dump the Html Page out */
for (i=first_sheet; i<=last_sheet; i++) /* For each worksheet */
{
trim_sheet_edges(i);
update_default_font(i);
if (ws_array[i] == 0)
continue;
if ((ws_array[i]->biggest_row == -1)||(ws_array[i]->biggest_col == -1))
continue;
if (ws_array[i]->c_array == 0)
continue;
printf( "\t\t\n" );
printf( "\t\t\t%d\n", i );
/* Print its name */
if (next_ws_title > 0)
{
if (ws_array[i]->ws_title.str)
{
printf("\t\t\t");
OutputString(&ws_array[i]->ws_title);
printf("\n");
}
else
printf("\t\t\t(Unknown Page)\n");
}
printf( "\t\t\t%ld\n", ws_array[i]->first_row );
printf( "\t\t\t%ld\n", ws_array[i]->biggest_row );
printf( "\t\t\t%d\n", ws_array[i]->first_col );
printf( "\t\t\t%d\n", ws_array[i]->biggest_col );
printf( "\t\t\t\n" );
for (j=ws_array[i]->first_row; j<=ws_array[i]->biggest_row; j++)
{
update_default_alignment(i, j);
printf("\t\t\t\t\n");
for (k=ws_array[i]->first_col; k<=ws_array[i]->biggest_col; k++)
{
printf("\t\t\t\t\t", j, k );
output_cell(ws_array[i]->c_array[(j*ws_array[i]->max_cols)+k], 1); /* This stuff happens for each cell... */
printf(" | \n" );
if (ws_array[i]->c_array[(j*ws_array[i]->max_cols)+k])
{
if (ws_array[i]->c_array[(j*ws_array[i]->max_cols)+k]->colspan != 0)
k += ws_array[i]->c_array[(j*ws_array[i]->max_cols)+k]->colspan-1;
}
}
printf("
\n");
}
printf( "\t\t\t\n" );
printf("\t\t\n");
}
printf( "\t\n" );
/* Print the author's name in itallics... */
if (author.str)
{
printf("\t");
OutputString(&author);
printf("\n");
}
/* Print when & how the file was last updated. */
if (lastUpdated)
printf("\t%s", lastUpdated);
printf( "\t" );
switch (file_version)
{
case EXCEL95:
printf("using Excel 5.0 or 95");
break;
case EXCEL97:
printf("using Excel 97/2000");
break;
default:
printf("using Excel ????");
break;
}
printf("\n");
/* Next print Disclaimers... */
if (NoFormat)
printf("\t%d\n", NoFormat );
if ((notAccurate)&&(formula_warnings)&&(disclaimers))
printf("\t%d\n", notAccurate );
if (NotImplemented&&(disclaimers))
printf("\t%d\n", NotImplemented );
if (Unsupported&&(disclaimers))
printf("\t%d\n", Unsupported );
/* Now out exceeded capacity warnings... */
if (MaxWorksheetsExceeded)
printf("\tThe Maximum Number of Worksheets were exceeded, you might want to increase it.\n ");
if (MaxRowExceeded)
printf("\tThe Maximum Number of Rows were exceeded, you might want to increase it.\n ");
if (MaxColExceeded)
printf("\tThe Maximum Number of Columns were exceeded, you might want to increase it.\n");
if (MaxStringsExceeded)
printf("\tThe Maximum Number of Strings were exceeded, you might want to increase it.\n");
if (MaxFontsExceeded)
printf("\tThe Maximum Number of Fonts were exceeded, you might want to increase it.\n");
if (MaxPalExceeded)
printf("\tThe Maximum Number of Color Palettes were exceeded, you might want to increase it.\n");
if (MaxXFExceeded)
printf("\tThe Maximum Number of Extended Formats were exceeded, you might want to increase it.\n");
if (MaxFormatsExceeded)
printf("\tThe Maximum Number of Formats were exceeded, you might want to increase it.\n");
/* Output Credit */
printf("\tCreated with xlhtml %s\n", VERSION);
printf("\thttp://chicago.sf.net/xlhtml/\n");
printf( "\n" );
}