使用 Excel 并尝试在 c# 中找到保存工作簿的方法,但没有运气;我已经用尽了谷歌
Posted
技术标签:
【中文标题】使用 Excel 并尝试在 c# 中找到保存工作簿的方法,但没有运气;我已经用尽了谷歌【英文标题】:Working with Excel and trying to find a save workbook method in c# but no luck; I have exhausted google 【发布时间】:2021-03-23 11:57:45 【问题描述】:这个程序是为教堂食品储藏室准备的,我是免费做的。我没有使用 C# 的经验,但我接受了这个项目,因为它听起来很有趣,因为我喜欢编程。无论如何,我的问题是我需要在关闭它之前保存工作簿,我似乎无法找到一种方法来做到这一点。
这里列出了代码和一些尝试;我收到的错误列在尝试旁边。
private void btnExcelClose_Click(object sender, EventArgs e)
exApp = new Microsoft.Office.Interop.Excel.Application();
// this.Save(); CS1961 Form1 does not contain a defintion for 'Save' and no accesible extension method
// thisworkbook.save(); CS0103 The name 'Thisworkbook' does not exist in the current contex
// Excel.Workbook.save(); CS0117 Workbook does not contain a definition for 'save'
// exApp.Workbooks.Save(); CS1061 'Workbooks' does not contain a defintion for 'Save' and no accesible extension method
exApp.Workbooks.Close();
【问题讨论】:
***.com/search?q=%5Bexcel%5D%5Bvba%5D+save+workbook 和 ***.com/search?q=%5Bexcel%5D%5Bvba%5D+saveas 在我看来你并没有用尽谷歌。 试试这个可能吗? - ***.com/questions/7012705/… 几次尝试未列出;直到之后我才想到要列出它们。 他们保存为的方式不起作用,因为保存不是工作簿的成员 【参考方案1】:实现 Save() 和 SaveAs() 方法的是 Workbook 类。
https://docs.microsoft.com/en-us/visualstudio/vsto/how-to-programmatically-save-workbooks?view=vs-2019
关于 C# 需要了解的几件事:关键字 this 对所使用的类具有特定的含义。而且 C# 区分大小写。
让我们看看为什么你的几次尝试都失败了。
this.Save(); CS1961 Form1 does not contain a defintion for 'Save' and no accesible extension method
上述失败是因为 this 引用您的表单类,而不是 Workbook 对象。
thisworkbook.save(); CS0103 The name 'Thisworkbook' does not exist in the current contex
显然您没有名为 thisworkbook
的变量。
Excel.Workbook.save(); CS0117 Workbook does not contain a definition for 'save'
该错误是因为您将save
拼写为小写,而应将Save
混合在一起。如果您更正此问题,它将给您另一个错误,因为Excel.Workbook
没有引用特定的工作簿。也许试试ActiveWorkbook
。
exApp.Workbooks.Save(); CS1061 'Workbooks' does not contain a defintion for 'Save' and no accesible extension method
这里你使用了复数 Workbooks
这是一个集合,它没有 Save
方法。您必须参考单独的工作簿。试试exApp.Workbooks[0].Save()
。
【讨论】:
以上是关于使用 Excel 并尝试在 c# 中找到保存工作簿的方法,但没有运气;我已经用尽了谷歌的主要内容,如果未能解决你的问题,请参考以下文章