Skip to content

Instantly share code, notes, and snippets.

@aetos382
Last active December 7, 2015 11:42
Show Gist options
  • Save aetos382/a174fba5a874cedc587a to your computer and use it in GitHub Desktop.
Save aetos382/a174fba5a874cedc587a to your computer and use it in GitHub Desktop.
using (var doc = SpreadsheetDocument.Create("output.xlsx", SpreadsheetDocumentType.Workbook))
{
/* [1] */ var workbookPart = doc.AddWorkbookPart();
/* [2] */ var workbook = workbookPart.Workbook = new Workbook();
/* [3] */ var worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
/* [4] */ worksheetPart.Worksheet = new Worksheet();
var sheets = new Sheets();
/* [5] */ workbook.Append(sheets);
var sheet = new Sheet { Name = "Sheet1" };
/* [6] */ sheets.Append(sheet);
string relationshipId = workbookPart.GetIdOfPart(worksheetPart);
/* [7] */ sheet.Id = relationshipId;
doc.Save();
}

上記のコードの [1] ~ [7] をすべてコメントアウトした後で、段階的に復帰させるとどうなるか。

すべての行が無効

output.xlsx が作られるが中身は空っぽ

[1] のみ有効

output.xlsx 内に xl/workbook.xml が作られるが、中身は空っぽ

[2] まで有効

[1] で出来た workbook.xml 内に workbook 要素が作られる

[3] まで有効

output.xlsx 内に xl/worksheets/sheet.xml が作られるが、中身は空っぽ

[4] まで有効

[3] で出来た sheet.xml 内に worksheet 要素が作られる

[5] まで有効

[2] で出来た workbook 要素内に sheets 要素が作られる

[6] まで有効

[5] で出来た sheets 要素内に sheet 要素が作られる

[7] まで有効

[6] で出来た sheet 要素と [3] で出来た sheet.xml が結び付けられる

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment