コード例 #1
0
        // Write
        private static void SaveWorksheetData(WorksheetData worksheetData)
        {
            OpenXmlPackaging.WorksheetPart worksheetPart = Worksheet.GetWorksheetPartByWorksheet(worksheetData.Worksheet);

            using (CustomOpenXmlWriter<OpenXmlPackaging.WorksheetPart> writer = new CustomOpenXmlWriter<OpenXmlPackaging.WorksheetPart>(worksheetPart))
            {
                writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.Worksheet());

                if (worksheetData._rows != null)
                    RowCollection.WriteSheetDimensionToWriter(writer, worksheetData.Worksheet);
                if (worksheetData._sheetViews != null)
                    SheetViews.WriteSheetViewsToWriter(writer, worksheetData.SheetViews);
                if (worksheetData._format != null)
                    WorksheetFormat.WriteWorksheetFormatToWriter(writer, worksheetData.Format);
                if (worksheetData._columns != null)
                    ColumnCollection.WriteColumnsToWriter(writer, worksheetData.Columns);
                if (worksheetData._rows != null)
                    RowCollection.WriteRowsToWriter(writer, worksheetData.Rows);
                // should probably store merge cells and hyperlinks in their own objects. Reference them from the cells
                MergeCell.WriteMergeCellsToWriter(writer, worksheetData.Worksheet);
                Hyperlink.WriteHyperlinksToWriter(writer, worksheetData.Worksheet);
                if (worksheetData._printOptions != null)
                    PrintOptions.WritePrintOptionsToWriter(writer, worksheetData.PrintOptions);
                if (worksheetData._pageMargins != null)
                    PageMargins.WritePageMarginsToWriter(writer, worksheetData.PageMargins);
                if (worksheetData._pageSetup != null)
                    PageSetup.WritePageSetupToWriter(writer, worksheetData.PageSetup);
                if (worksheetData._headerFooter != null)
                    HeaderFooter.WriteHeaderFooterToWriter(writer, worksheetData.HeaderFooter);
                if (worksheetData._drawing != null)
                    Drawing.WriteDrawingToWorksheetWriter(writer, worksheetData.Drawing);

                writer.WriteEndElement();   // Worksheet
            }

            if (worksheetData._drawing != null)
                worksheetData.Drawing.Save();
        }
コード例 #2
0
        /***********************************
         * DAL METHODS
         ************************************/
        // Read
        private static void ReadWorksheetDataFromWorksheetData(WorksheetData worksheetData)
        {
            OpenXmlSpreadsheet.Worksheet worksheetElement = Worksheet.GetWorksheetElementFromWorksheet(worksheetData.Worksheet);

            using (CustomOpenXmlReader reader = CustomOpenXmlReader.Create(worksheetElement))
            {
                while (reader.Read())
                {
                    if (reader.IsStartElementOfType<OpenXmlSpreadsheet.SheetViews>())
                        worksheetData.SheetViews = SheetViews.ReadSheetViewsFromReader(reader, worksheetData.Worksheet);
                    else if (reader.IsStartElementOfType<OpenXmlSpreadsheet.SheetFormatProperties>())
                        worksheetData.Format = WorksheetFormat.ReadWorksheetFormatFromReader(reader, worksheetData.Worksheet);
                    else if (reader.IsStartElementOfType<OpenXmlSpreadsheet.Columns>())
                        worksheetData.Columns = ColumnCollection.ReadColumnsFromReader(reader, worksheetData.Worksheet);
                    else if (reader.IsStartElementOfType<OpenXmlSpreadsheet.SheetData>())
                        worksheetData.Rows = RowCollection.ReadRowsFromReader(reader, worksheetData.Worksheet);
                    else if (reader.IsStartElementOfType<OpenXmlSpreadsheet.MergeCells>())
                        MergeCell.UpdateCellMergeCellsFromReader(reader, worksheetData.Worksheet);
                    else if (reader.IsStartElementOfType<OpenXmlSpreadsheet.Hyperlinks>())
                        Hyperlink.UpdateCellHyperlinksFromReader(reader, worksheetData.Worksheet);
                    else if (reader.IsStartElementOfType<OpenXmlSpreadsheet.PrintOptions>())
                        worksheetData.PrintOptions = PrintOptions.ReadPrintOptionsFromReader(reader, worksheetData.Worksheet);
                    else if (reader.IsStartElementOfType<OpenXmlSpreadsheet.PageMargins>())
                        worksheetData.PageMargins = PageMargins.ReadPageMarginsFromReader(reader, worksheetData.Worksheet);
                    else if (reader.IsStartElementOfType<OpenXmlSpreadsheet.PageSetup>())
                        worksheetData.PageSetup = PageSetup.ReadPageSetupFromReader(reader, worksheetData.Worksheet);
                    else if (reader.IsStartElementOfType<OpenXmlSpreadsheet.HeaderFooter>())
                        worksheetData.HeaderFooter = HeaderFooter.ReadHeaderFooterFromReader(reader, worksheetData.Worksheet);
                    else if (reader.IsStartElementOfType<OpenXmlSpreadsheet.Drawing>())
                        worksheetData.Drawing = Drawing.ReadDrawingFromReader(reader, worksheetData.Worksheet);
                }
            }
        }