2016-08-25 21 views
0

何らかの理由により、私のコードは自動フィルタをスプレッドシートに追加しません。それは、しかし、自動フィルタが存在しない場合、開いたときに細かい生成されます。以下は、私の方法の関連するスニペットです。ワークシートにオートフィルタを追加してから、xmlwriterを使用してドキュメントに書き込もうとします。OpenXML SAXを使用してドキュメントにオートフィルタを追加する

//create worksheet part, and add it to the sheets collection in workbook 
WorksheetPart wsp = wbp.AddNewPart<WorksheetPart>(); 
OpenXmlWriter writer = OpenXmlWriter.Create(wsp); 
var worksheet = new Worksheet(); 
worksheet.AppendChild<AutoFilter>(new AutoFilter() { Reference = "A:BA" }); 
writer.WriteStartElement(worksheet); 
writer.WriteStartElement(new SheetData()); 

答えて

0

自分自身で答えを見つけました。書いた後、シートデータの終わりはオートフィルタを書かなければならない時です。

writer.WriteEndElement(); //end of SheetData 
    writer.WriteElement(new AutoFilter() { Reference = "A:BA" }); 
    writer.WriteEndElement(); //end of worksheet 
    writer.Close(); 
関連する問題