Exemplo n.º 1
0
        // Write
        internal static void WriteWorksheetFormatToWriter(CustomOpenXmlWriter<OpenXmlPackaging.WorksheetPart> writer, WorksheetFormat worksheetFormat)
        {
            if (worksheetFormat.HasValue())
            {
                writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.SheetFormatProperties());

                if (worksheetFormat.DefaultRowHeight > 0)
                    writer.WriteAttribute("defaultRowHeight", worksheetFormat.DefaultRowHeight);

                writer.WriteEndElement();   // SheetFormatProperties
            }
        }
Exemplo n.º 2
0
 // Write
 internal static void WriteDrawingToWorksheetWriter(CustomOpenXmlWriter<OpenXmlPackaging.WorksheetPart> writer, Drawing drawing)
 {
     writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.Drawing());
     writer.WriteAttribute("id", drawing.RelationshipId, "r");
     writer.WriteEndElement();   // Drawing
 }
Exemplo n.º 3
0
        // Write
        internal static void WriteSheetViewsToWriter(CustomOpenXmlWriter<OpenXmlPackaging.WorksheetPart> writer, SheetViews sheetViews)
        {
            if (sheetViews.HasValue())
            {
                writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.SheetViews());
                writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.SheetView());

                if (sheetViews.Selected)
                    writer.WriteAttribute("tabSelected", sheetViews.Selected);
                // the implementation of worksheetViewId gets quite complicated. The use isn't supported here, but the attribute is necessary to compile.
                writer.WriteAttribute("workbookViewId", 0);

                if (sheetViews.FrozenRow > 0 || sheetViews.FrozenColumn > 0)
                {
                    writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.Pane());
                    writer.WriteAttribute("state", "frozen");
                    if (sheetViews.FrozenRow > 0) writer.WriteAttribute("ySplit", sheetViews.FrozenRow);
                    if (sheetViews.FrozenColumn > 0) writer.WriteAttribute("xSplit", sheetViews.FrozenColumn);
                    writer.WriteAttribute("topLeftCell", sheetViews.Worksheet.Cells[sheetViews.FrozenRow + 1, sheetViews.FrozenColumn + 1].Address);
                    writer.WriteEndElement();   // Pane
                }

                writer.WriteEndElement();   // SheetView
                writer.WriteEndElement();   // SheetViews
            }
        }
Exemplo n.º 4
0
        // Write
        internal static void WriteRowToWriter(CustomOpenXmlWriter<OpenXmlPackaging.WorksheetPart> writer, Row row)
        {
            if (row.Cells.FirstOrDefault(c => c.IsUsed) == null)
                return;

            writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.Row());

            writer.WriteAttribute("r", row.Index);
            if (row.StyleIndex > CellFormat.DefaultStyleIndex) writer.WriteAttribute("s", row.StyleIndex);
            if (row.Height > 0 && row.Height != row.Worksheet.Format.DefaultRowHeight) writer.WriteAttribute("ht", row.Height);

            row.Cells.Action(c => Cell.WriteCellToWriter(writer, c));

            writer.WriteEndElement();   // Row
        }
Exemplo n.º 5
0
        // Write
        internal static void WriteHeaderFooterToWriter(CustomOpenXmlWriter<OpenXmlPackaging.WorksheetPart> writer, HeaderFooter headerFooter)
        {
            if (headerFooter.HasValue())
            {
                writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.HeaderFooter());
                if (!headerFooter.AlignWithMargins) writer.WriteAttribute("alignWithMargins", headerFooter.AlignWithMargins);

                if (headerFooter.OddHeader != "")
                {
                    writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.OddHeader());
                    writer.WriteText(headerFooter.OddHeader);
                    writer.WriteEndElement();   // OddHeader
                }
                if (headerFooter.OddFooter != "")
                {
                    writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.OddFooter());
                    writer.WriteText(headerFooter.OddFooter);
                    writer.WriteEndElement();   // OddFooter
                }

                writer.WriteEndElement();   // HeaderFooter
            }
        }
Exemplo n.º 6
0
        private static void WriteHyperlinkToWriter(CustomOpenXmlWriter<OpenXmlPackaging.WorksheetPart> writer, Cell cell)
        {
            writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.Hyperlink());

            writer.WriteAttribute("ref", cell.Address);
            writer.WriteAttribute("display", cell.Text);
            writer.WriteAttribute("location", GetTargetAddress(cell.HyperlinkToCell));

            writer.WriteEndElement();   // Hyperlink
        }
Exemplo n.º 7
0
        // Write
        internal static void WritePageSetupToWriter(CustomOpenXmlWriter<OpenXmlPackaging.WorksheetPart> writer, PageSetup pageSetup)
        {
            if (pageSetup.HasValue())
            {
                writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.PageSetup());

                if (pageSetup.BlackAndWhite) writer.WriteAttribute("blackAndWhite", pageSetup.BlackAndWhite);
                if (pageSetup.Copies > 1) writer.WriteAttribute("copies", pageSetup.Copies);
                if (pageSetup.Draft) writer.WriteAttribute("draft", pageSetup.Draft);
                if (pageSetup.FirstPageNumber > 1) writer.WriteAttribute("firstPageNumber", pageSetup.FirstPageNumber);
                if (pageSetup.FitToHeight > -1) writer.WriteAttribute("fitToHeight", pageSetup.FitToHeight);
                if (pageSetup.FitToWidth > -1) writer.WriteAttribute("fitToWidth", pageSetup.FitToWidth);
                if (pageSetup.HorizontalDpi != 600) writer.WriteAttribute("horizontalDpi", pageSetup.HorizontalDpi);
                if (pageSetup.VerticalDpi != 600) writer.WriteAttribute("verticalDpi", pageSetup.VerticalDpi);
                if (pageSetup.Orientation != WorksheetOrientation.Portrait) writer.WriteAttribute("orientation", Helpers.ToCamelCase(pageSetup.Orientation.ToString()));
                if (pageSetup.PaperSize != 9) writer.WriteAttribute("paperSize", pageSetup.PaperSize);
                if (pageSetup.RelationshipId != "") writer.WriteAttribute("id", pageSetup.RelationshipId, "r");
                if (pageSetup.Scale != 400) writer.WriteAttribute("scale", pageSetup.Scale);
                if (pageSetup.UseFirstPageNumber) writer.WriteAttribute("useFirstPageNumber", pageSetup.UseFirstPageNumber);
                if (pageSetup.UsePrinterDefaults) writer.WriteAttribute("usePrinterDefaults", pageSetup.UsePrinterDefaults);

                writer.WriteEndElement();   // PageSetup
            }
        }
Exemplo n.º 8
0
        // Write
        internal static void WriteCellToWriter(CustomOpenXmlWriter<OpenXmlPackaging.WorksheetPart> writer, Cell cell)
        {
            if (!cell.IsUsed)
                return;

            writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.Cell());

            string dataType = GetAttributeValueFromCellDataType(cell.CellDataType);
            if (dataType != "") writer.WriteAttribute("t", dataType);
            if (cell.StyleIndex > CellFormat.DefaultStyleIndex) writer.WriteAttribute("s", cell.StyleIndex);
            writer.WriteAttribute("r", cell.Address);

            if (cell.RawValue != null && cell.RawValue.ToString() != "")
            {
                writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.CellValue());

                switch (cell.CellDataType)
                {
                    case CellDataType.Boolean:
                        writer.WriteText((bool)cell.RawValue);
                        break;
                    case CellDataType.SharedString:
                        int sharedStringIndex;
                        if (cell.SharedString != null)
                            sharedStringIndex = cell.Worksheet.Workbook.SharedStrings[cell.SharedString];
                        else
                            sharedStringIndex = cell.Worksheet.Workbook.SharedStrings[cell.RawValue.ToString()];

                        writer.WriteText(sharedStringIndex.ToString());
                        break;
                    default:
                        writer.WriteString(cell.RawValue.ToString());
                        break;
                }
                writer.WriteEndElement();    // CellValue
            }

            writer.WriteEndElement();   // Cell
        }
Exemplo n.º 9
0
        // Write
        internal static void WritePageMarginsToWriter(CustomOpenXmlWriter<OpenXmlPackaging.WorksheetPart> writer, PageMargins pageMargins)
        {
            writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.PageMargins());

            writer.WriteAttribute("left", pageMargins.Left);
            writer.WriteAttribute("right", pageMargins.Right);
            writer.WriteAttribute("top", pageMargins.Top);
            writer.WriteAttribute("bottom", pageMargins.Bottom);
            writer.WriteAttribute("header", pageMargins.Header);
            writer.WriteAttribute("footer", pageMargins.Footer);

            writer.WriteEndElement();   // PageMargins
        }
Exemplo n.º 10
0
        // Write
        internal static void WriteColumnRangeToWriter(CustomOpenXmlWriter<OpenXmlPackaging.WorksheetPart> writer, ColumnRange columnRange)
        {
            writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.Column());

            writer.WriteAttribute("min", columnRange.MinIndex);
            writer.WriteAttribute("max", columnRange.MaxIndex);
            if (columnRange.StyleIndex > 0) writer.WriteAttribute("style", columnRange.StyleIndex);
            writer.WriteAttribute("width", columnRange.Width);
            if (columnRange.IsBestFit) writer.WriteAttribute("bestFit", columnRange.IsBestFit);
            if (columnRange.IsCustomWidth) writer.WriteAttribute("customWidth", columnRange.IsCustomWidth);

            writer.WriteEndElement();   // Column
        }
Exemplo n.º 11
0
        // Write
        internal static void WritePrintOptionsToWriter(CustomOpenXmlWriter<OpenXmlPackaging.WorksheetPart> writer, PrintOptions printOptions)
        {
            if (printOptions.HasValue())
            {
                writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.PrintOptions());

                if (printOptions.HorizontalCentered) writer.WriteAttribute("horizontalCentered", printOptions.HorizontalCentered);
                if (printOptions.VerticalCentered) writer.WriteAttribute("verticalCentered", printOptions.VerticalCentered);
                if (printOptions.GridLines) writer.WriteAttribute("gridLines", printOptions.GridLines);
                if (printOptions.Headings) writer.WriteAttribute("headings", printOptions.Headings);

                writer.WriteEndElement();   // PrintOptions
            }
        }
Exemplo n.º 12
0
        private static void WriteMergeCellToWriter(CustomOpenXmlWriter<OpenXmlPackaging.WorksheetPart> writer, string mergeCell)
        {
            writer.WriteOpenXmlElement(new OpenXmlSpreadsheet.MergeCell());

            writer.WriteAttribute("ref", mergeCell);

            writer.WriteEndElement();   // MergeCell
        }