/*********************************** * DAL METHODS ************************************/ // Read internal static HeaderFooter ReadHeaderFooterFromReader(CustomOpenXmlReader reader, Worksheet worksheet) { HeaderFooter headerFooter = new HeaderFooter(worksheet); foreach (CustomOpenXmlAttribute attribute in reader.Attributes) { switch (attribute.LocalName) { case "alignWithMargins": headerFooter.AlignWithMargins = attribute.GetBoolValue(); break; default: throw new Exception(string.Format("HeaderFooter attribute {0} not coded", attribute.LocalName)); } } while (reader.ReadToEndElement<OpenXmlSpreadsheet.HeaderFooter>()) { if (reader.IsStartElementOfType<OpenXmlSpreadsheet.OddHeader>()) headerFooter.OddHeader = reader.GetText(); else if (reader.IsStartElementOfType<OpenXmlSpreadsheet.OddFooter>()) headerFooter.OddFooter = reader.GetText(); } return headerFooter; }
private static object GetCellValueFromReader(CustomOpenXmlReader reader, CellDataType cellDataType, Row row) { object cellValue = null; while (reader.ReadToEndElement<OpenXmlSpreadsheet.Cell>()) { if (reader.IsStartElementOfType<OpenXmlSpreadsheet.CellValue>()) { string rawValue = reader.GetText(); if (rawValue != "") { switch (cellDataType) { case CellDataType.Boolean: cellValue = (rawValue == "1" ? true : false); break; case CellDataType.SharedString: int sharedStringIndex = int.Parse(rawValue); cellValue = row.Worksheet.Workbook.SharedStrings[sharedStringIndex]; break; case CellDataType.Number: double doubleValue = 0; if (double.TryParse(rawValue, out doubleValue)) cellValue = doubleValue; break; case CellDataType.String: cellValue = rawValue.ToString(); break; default: throw new ArgumentOutOfRangeException(); } } } } return cellValue; }