使用 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# 中找到保存工作簿的方法,但没有运气;我已经用尽了谷歌的主要内容,如果未能解决你的问题,请参考以下文章

WPF Form C#提交按钮到excel

保存 Excel 工作簿 C#

使用 C# 代码打开 Excel 工作簿时出错

Excel 2010 vba 复制选择工作表,保存并关闭两个工作簿

一个Excel工作簿中的多个工作表怎么拆分成独立表格

VBA密码保护Excel工作簿而不保存