2016-12-28 14 views
0

を使用してExcelのセルをマージします。私はこれらのアプローチを使用している代わりに、DOMのアプローチが優れて何千ものレコードを記述することです。は、私がopenxmlwriterとSAXのアプローチを使用してExcelのセルをマージしたい「OpenXMLのライター」

+0

を使用してセルを結合するコードを記述するために他人を助けるかもしれないコードの一部を共有するあなたは、最新のコードを共有していいですのですか? –

+0

数千人が大多数ではありません。あなたはEPPlusのようなライブラリを使用してみましたか?説明なし –

答えて

0

私はOpenXmlWriter(のOpenXml SAX)

 /*OpenXMLWriter to write large data to excel to avoid System.OutOfMemoryException*/ 
       OpenXmlWriter oxw = OpenXmlWriter.Create(wsPart); 
       oxw.WriteStartElement(new Worksheet()); 
       /*Excel column style */ 
       oxw.WriteStartElement(new Columns()); 
       foreach (var item in gridHeaderList) 
       { 
        oxw.WriteStartElement(new Column(), new List<OpenXmlAttribute>() 
        { new OpenXmlAttribute("min", null, (item.columnIndex + 1).ToString()), 
         new OpenXmlAttribute("max", null, (item.columnIndex + 1).ToString()), 
         new OpenXmlAttribute("width", null, item.columnWidth.ToString()) 
        } 
        ); 

        oxw.WriteEndElement(); 
       } 

       oxw.WriteEndElement(); 
       /*End of Columns element node*/ 

       /*Sheet data node*/ 
       oxw.WriteStartElement(new SheetData()); 

       oxw.WriteStartElement(new Row()); 
       foreach (var item in dataList) 
       { 
        oxw.WriteElement(new Cell() { CellValue = new CellValue(item.Value), DataType = CellValues.String, StyleIndex = item.styleIndex }); 
       } 
       oxw.WriteEndElement(); 

       oxw.WriteEndElement(); 
       /*End of sheetdata element node*/ 

       /*Start of MergeCells element node NOTE: Make sure initialize "A6:D6" range cells   */  
    oxw.WriteStartElement(new MergeCells()); 
        oxw.WriteElement(new MergeCell() { Reference = new StringValue("A6:D6") }); 
        oxw.WriteEndElement(); 
        /*End of MergeCells element node*/ 


       oxw.WriteEndElement(); 
       /*End of worksheet element node*/ 

       oxw.Close(); 
+1

コードのみの答えは、コードの90%が –

+0

最後に、ワークシートの要素を閉じる前に、コードを見つけてください、質問に関連する* *でない場合は特に、助けていない、これは私がOpenXMLWriterを使用してセルを結合するために必要なものです。 – user3766483

+1

あなたの質問を編集して、これが答えです理由を説明します。冗長コードを削除します。これは役に立つものではありません。 –

関連する問題