Exemplo n.º 1
0
        /***********************************
         * 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;
        }
Exemplo n.º 2
0
        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;
        }