【開発環境】
OS:Windows10
開発ツール:Visual Studio 2013 Communty
その他:Open XML SDK 2.0
Open XMLを使用しExcelファイルを生成したいと考えております。
以下、ソースを載せておりますが
1行目の「C:\test.xlsx」で絶対パスを指定すると保存する事ができません。
※「"パス 'C:\test.xlsx' へのアクセスが拒否されました。」とエラーが出ます
ここを相対パス「../test.xlsx」にすると正常に保存出来ます。
同じ経験された方いましたら、助言を頂けないでしょうか。
宜しくお願い致します。
以下、コードです。
// 新しいドキュメントを作成
SpreadsheetDocument document = SpreadsheetDocument.Create(@"C:\test.xlsx", SpreadsheetDocumentType.Workbook, true);
// ドキュメントのワークブックパートに、ワークブックを設定
WorkbookPart wbpart = document.AddWorkbookPart();
wbpart.Workbook = new Workbook();
// ワークブックパートに、ワークシートパートを設定
WorksheetPart wspart = wbpart.AddNewPart<WorksheetPart>();
SheetData sheetData = new SheetData();
wspart.Worksheet = new Worksheet(sheetData);
// ワークブックにシートを設定
Sheets sheets = wbpart.Workbook.AppendChild<Sheets>(new Sheets());
// シートを一つ追加
Sheet sheet = new Sheet() { Id = wbpart.GetIdOfPart(wspart), SheetId = 1, Name = "Sheet1" };
sheets.Append(sheet);
// ここまでがお決まりの処理
// Sheetではなく、SheetDataにデータを設定していく
// Cell単独では存在できない模様
// Rowオブジェクトを作成、そこにCellデータを追加していく。
Row row = new Row();
Cell cell = new Cell();
cell.DataType = CellValues.String;
cell.CellReference = "R1C1";
cell.CellValue = new CellValue("B1のセル");
row.Append(cell);
// 行が変わるタイミングで、Rowオブジェクトを再設定
sheetData.Append(row);
row = new Row();
cell = new Cell();
cell.DataType = CellValues.String;
cell.CellReference = "A2";
cell.CellValue = new CellValue("A2のセル");
row.Append(cell);
// 最後にRowをSheetDataに追加
sheetData.Append(row);
// ファイルを保存
document.Close();
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。