/// <summary> /// Write the values for the rows from headers. /// </summary> /// <param name="rowData">Excel row values.</param> /// <param name="headerData">Excel header values.</param> /// <param name="rowNum">Row number.</param> /// <param name="maxWidth">Max width.</param> /// <param name="spreadSheet">Spreadsheet to write to. </param> /// <param name="workSheet">Worksheet to write to. </param> private static void WriteRowsFromHeaders(IEnumerable <T> rowData, string[] headerData, int rowNum, out int maxWidth, SpreadsheetDocument spreadSheet, WorksheetPart workSheet) { WorksheetWriter workSheetWriter = new WorksheetWriter(spreadSheet, workSheet); maxWidth = 0; foreach (object row in rowData) { int colNum = 0; foreach (string header in headerData) { string strValue = row.GetType().GetProperty(header).GetValue(row, null).ToString(); strValue = ReplaceSpecialCharacters(strValue); maxWidth = strValue.Length > maxWidth ? strValue.Length : maxWidth; string cellLocation = string.Format("{0}{1}", GetColumnLetter(colNum.ToString()), rowNum); ExcelDocument <T> .WriteValues(cellLocation, strValue, spreadSheet, workSheet); colNum++; } rowNum++; } }
/// <summary> /// Write the excel rows for the spreadsheet. /// </summary> /// <param name="rowData">Excel row values.</param> /// <param name="rowDataKeys">Excel row-key values.</param> /// <param name="rowNum">Row number.</param> /// <param name="maxWidth">Max width.</param> /// <param name="spreadSheet">Spreadsheet to write to. </param> /// <param name="workSheet">Worksheet to write to. </param> private static void WriteRowsFromKeys(IEnumerable <T> rowData, string[] rowDataKeys, int rowNum, out int maxWidth, SpreadsheetDocument spreadSheet, WorksheetPart workSheet) { DateTime t = DateTime.Now; System.Diagnostics.Debug.Write(string.Format("ff {0}", (DateTime.Now - t).Ticks)); t = DateTime.Now; maxWidth = 0; SheetDataSet dsfa = new SheetDataSet(); SheetData data = new SheetData(); foreach (object row in rowData) { int colNum = 0; t = DateTime.Now; foreach (string rowKey in rowDataKeys) { object value = row.GetType().GetProperty(rowKey).GetValue(row, null); string strValue = value == null ? string.Empty : value.ToString(); strValue = ReplaceSpecialCharacters(strValue); maxWidth = strValue.Length > maxWidth ? strValue.Length : maxWidth; string cellLocation = string.Format("{0}{1}", GetColumnLetter(colNum.ToString()), rowNum); ExcelDocument <T> .WriteValues(cellLocation, strValue, spreadSheet, workSheet); colNum++; } System.Diagnostics.Debug.WriteLine(string.Format("1ff {0}", (DateTime.Now - t).Ticks)); t = DateTime.Now; rowNum++; } }
/// <summary> /// Write the excel headers for the spreadsheet. /// </summary> /// <param name="headerData">Excel header values.</param> /// <param name="rowNum">Row number.</param> /// <param name="colNum">Column Number.</param> /// <param name="maxWidth">Max column width</param> /// <param name="spreadSheet">Maximum Column Width to write to. </param> /// <param name="workSheet">Worksheet to write to. </param> private static void WriteHeaders(string[] headerData, out int rowNum, out int colNum, out int maxWidth, SpreadsheetDocument spreadSheet, WorksheetPart workSheet) { rowNum = 1; colNum = 0; maxWidth = 0; foreach (string header in headerData) { string strValue = ReplaceSpecialCharacters(header); string cellLocation = string.Format("{0}{1}", GetColumnLetter(colNum.ToString()), rowNum); maxWidth = strValue.Length > maxWidth ? strValue.Length : maxWidth; ExcelDocument <T> .WriteValues(cellLocation, strValue, spreadSheet, workSheet); SeatHeaderStyle(cellLocation, spreadSheet, workSheet); colNum++; } rowNum++; }