【发布时间】:2015-09-15 08:31:05
【问题描述】:
我正在尝试通过使用开放 XML SDK 2.5 插入外部加载的图像来更改预先存在的办公文档。我计划通过将工作表附加到工作簿然后在那里完成所有工作来在 excel 中执行此操作。但是,我似乎无法特别解决一个错误。
我的代码是:
public void insert(String filepath)
{
SpreadsheetDocument doc = SpreadsheetDocument.Open(filepath, false);
// Add a WorksheetPart to the WorkbookPart.
WorksheetPart worksheetPart = doc.WorkbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());
// Add Sheets to the Workbook.
Sheets sheets = doc.WorkbookPart.Workbook.
AppendChild<Sheets>(new Sheets());
// Append a new worksheet and associate it with the workbook.
Sheet sheet = new Sheet()
{
Id = doc.WorkbookPart.
GetIdOfPart(worksheetPart),
SheetId = 1,
Name = "mySheet"
};
sheets.Append(sheet);
// Close the document.
doc.Close();
}
每次我尝试测试程序时,第 6 行(添加新的工作表部分)都会引发 IO 异常。大部分代码取自 MSDN。同一个站点建议如果我遇到 IO 异常,我可能输入了错误的文件路径,但绝对不是这种情况。我还验证了我正在访问的成员确实是公开的,所以我有点困惑。谁能告诉我这个错误可能是什么?我希望这很简单。这是我第一次使用 C#。
编辑:我应该提到异常消息还指出“无法打开只读容器”,但我已经验证该文件不是只读的并且 excel 没有打开。
【问题讨论】:
-
@Donal 不,我没有。而且我在正在运行的进程列表中没有看到 excel。
标签: c# excel visual-studio openxml-sdk