0

Open XML を使用して、日付型を使用してセルに日付を書き込む必要があります。どうすればこれができるか教えてください。

4

2 に答える 2

2

私は答えを得て、皆さんと共有しました...

セルを追加するだけです..

 Cell cell =new Cell(){ cellReference=A1 }; //Or other necessary details
 cell.cellValue = new CellValue(DateTime.Now.ToOADate().ToString()); 

 cell.StyleIndex=5;

ここで私は使用しました

cell.StyleIndex=5;

これは、Excel の日付のデフォルト スタイル インデックスです。したがって、すべての外部スタイルシートを追加する必要はありません

楽しみ :)

于 2012-07-26T12:26:14.270 に答える
1

したがって、すべての外部スタイルシートを追加する必要はありません

スタイルシートなしでは動作しませんでした。

このブログ投稿を使用して機能させました。スタイルシートには、日付を使用するために必要な CellStyleFormat および CellFormat セクションに加えて、Font、Border、Fill、DifferentialFormat、および TableStyle セクションが必要です。

private static Stylesheet CreateStylesheet()
    {
        Stylesheet ss = new Stylesheet();

        Fonts fonts = new Fonts(new OpenXmlElement[]
        {
            new Font
            {
                FontName = new FontName { Val = "Calibri" },
                FontSize = new FontSize { Val = 11 }
            }
        });
        fonts.Count = (uint)fonts.ChildElements.Count;

        Fills fills = new Fills(new OpenXmlElement[]
        {
            new Fill
            {
                PatternFill = new PatternFill { PatternType = PatternValues.None }
            }
        });
        fills.Count = (uint)fills.ChildElements.Count;

        Borders borders = new Borders(new OpenXmlElement[]
        {
            new Border
            {
                LeftBorder = new LeftBorder(),
                RightBorder = new RightBorder(),
                TopBorder = new TopBorder(),
                BottomBorder = new BottomBorder(),
                DiagonalBorder = new DiagonalBorder(),
            }
        });
        borders.Count = (uint)borders.ChildElements.Count;

        CellStyleFormats csfs = new CellStyleFormats(new OpenXmlElement[] 
        {
            new CellFormat
            {
                NumberFormatId = 0,
                FontId = 0,
                FillId = 0,
                BorderId = 0,
            }
        });
        csfs.Count = (uint)csfs.ChildElements.Count;

        CellFormats cfs = new CellFormats(new OpenXmlElement[]
        {
            new CellFormat
            {
                NumberFormatId = 0,
                FontId = 0,
                FillId = 0,
                BorderId = 0,
                FormatId = 0,
            },
            new CellFormat
            {
                NumberFormatId = 14,
                FontId = 0,
                FillId = 0,
                BorderId = 0,
                FormatId = 0,
                ApplyNumberFormat = true
            }
        });

        cfs.Count = (uint)cfs.ChildElements.Count;

        ss.Append(fonts);
        ss.Append(fills);
        ss.Append(borders);
        ss.Append(csfs);
        ss.Append(cfs);

        DifferentialFormats dfs = new DifferentialFormats();
        dfs.Count = 0;
        ss.Append(dfs);

        TableStyles tss = new TableStyles();
        tss.Count = 0;
        tss.DefaultTableStyle = "TableStyleMedium9";
        tss.DefaultPivotStyle = "PivotStyleLight16";
        ss.Append(tss);

        return ss;
    }

スタイル シートが配置されたら、StyleIndex を設定できます。

cell.StyleIndex=14
于 2016-06-22T19:45:39.230 に答える