2016-11-20 11 views
1

私はアプリケーションからXMLファイルにデータをエクスポートする必要があります。私はOpenXMLを使用してこれを実行しようとしていますが、私が使用しているコードではファイルが開かれないようにします。OpenXMLは空のSheetData要素を生成します

<?xml version="1.0" encoding="utf-8"?> 
<x:worksheet xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main"> 
<x:sheetData /> <---- this guy here. 
<x:sheetData> 
<x:row><x:c t="str"> 
<x:v>Key</x:v></x:c> 
<x:c t="str"><x:v>Value</x:v></x:c> 
</x:row> 
</x:sheetData> 
</x:worksheet> 

これは私がファイルを生成するために使用するコードです。

SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(System.IO.Path.Combine(currentPath, "Export Data") + [email protected]"\Export-{DateTime.Now.Year}.xlsx", SpreadsheetDocumentType.Workbook); 

    WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart(); 
    workbookpart.Workbook = new Workbook(); 

    WorksheetPart worksheetPart = workbookpart.AddNewPart<WorksheetPart>(); 
    worksheetPart.Worksheet = new Worksheet(new SheetData()); 

    Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild<Sheets>(new Sheets()); 
    Sheet sheet = new Sheet() 
    { 
     Id = spreadsheetDocument.WorkbookPart. 
      GetIdOfPart(worksheetPart), 
      SheetId = 1, 
      Name = "Temp" 
    }; 
    sheets.Append(sheet); 
    SheetData sheetData = worksheetPart.Worksheet.AppendChild(new SheetData()); 
    Row row = new Row(); 
    row.Append(
     ConstructCell("Key", CellValues.String), 
     ConstructCell("Value", CellValues.String)); 
    sheetData.AppendChild(row); 
    worksheetPart.Worksheet.Save(); 
    spreadsheetDocument.Close(); 

追加の「SheetData」要素がどこから来ているのか教えていただけますか?私は見るだけではわかりません。

答えて

1

私はとても愚かです。私は不必要なシートデータ要素をどこに作成しているのか分かりました。

WorksheetPart worksheetPart = workbookpart.AddNewPart<WorksheetPart>(); 
worksheetPart.Worksheet = new Worksheet(new SheetData()); // HERE 
+0

本当にありがとうございました!私はまったく同じことをして、それがどのように作成されているのか分からなかった。これは私のためにそれを固定した。 – dodegaard

関連する問題