Example #1
0
        private static void write_worksheet(DataSource datasource, Formats.ExcelXMLWriter writer, string sheetname, bool write_column_headers)
        {
            var schema = datasource.GetSchema();
            int num_cols = schema.Fields.Count;
            var datatypes = Enumerable.Repeat(Formats.ExcelXMLWriter.DataType.String, num_cols).ToArray();

            for (int i = 0; i < num_cols; i++)
            {
                var col = schema.Fields[i];
                if (col.Type == typeof(System.DateTime))
                {
                    datatypes[i] = Formats.ExcelXMLWriter.DataType.DateTime;
                }
            }

            writer.StartWorkSheet(sheetname, num_cols, datatypes);

            if (write_column_headers)
            {
                writer.StartRow();
                foreach (var col in schema.Fields)
                {
                    var cn = col.Name;
                    var cdt = Formats.ExcelXMLWriter.DataType.String;
                    writer.Cell(cn, cdt);
                }

                writer.EndRow();
            }

            var excel_datatypes = schema.Fields.AsEnumerable().Select(col => DataUtil.getdt(col.Type)).ToList();

            foreach (var row in datasource.Rows)
            {
                writer.StartRow();
                for (int i = 0; i < row.ItemArray.Length; i++)
                {
                    var datatable_col = schema.Fields[i];
                    var excel_dt = excel_datatypes[i];
                    var item = row.ItemArray[i];

                    string cell_str = Isotope.Data.DataUtil.DataTableToExcelXML_get_cellstr(item, excel_dt, datatable_col);

                    writer.Cell(cell_str, excel_dt);
                }

                writer.EndRow();
            }

            writer.EndWorkSheet();
        }