#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" ); }