c# - 在 C# 中打开 MS Excel 工作表

标签 c# excel

我知道我们可以使用 C# 打开特定的 MS Excel 工作表,方法是提供工作表编号 (1,2,3..) 或名称(sheet1、sheet2、sheet3...)

我有一个 excel 文件,其中有 2 个工作表,1. 值,2. 结果

有没有一种方法可以打开一个工作表并提供工作表名称,即“值”而不是 C# 中的 1 或 [s|S]heet1??

我翻阅了旧帖子,但没有发现任何有用的东西......

所以我再次尝试做的是,使用用户定义的名称(值)而不是系统定义的名称(1 或 [s|S]heet1)打开 Excel 工作表

任何输入将不胜感激!

最佳答案

在您的项目中添加对 Microsoft.Office.Interop.Excel 的引用,您可以使用下一个代码作为基础

Excel.Application oXL;
Excel._Workbook oWB;
Excel._Worksheet oSheet;

//Start Excel and get Application object.
oXL = new Excel.Application();
oXL.Visible = false;
oXL.DisplayAlerts = false; // prevents message from popping up

try
{

    //Get a new workbook.
    oWB = (Excel._Workbook)(oXL.Workbooks.Open(filename, Type.Missing, Type.Missing, Type.Missing,
    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
    Type.Missing, Type.Missing, Type.Missing, Type.Missing));

    oSheet = (Excel._Worksheet)oWB.ActiveSheet;

    int nCounter = 1;
    oSheet.Copy(oSheet, Type.Missing);
    Excel._Worksheet oSheetGame = (Excel._Worksheet)oWB.Worksheets["MyTemplate"];
    oSheetGame.Name = "MyNewWorksheetName";
    // do something with worksheet

    ((Excel._Worksheet)oWB.Sheets["MyTemplate"]).Delete(); // delete template
    ((Excel._Worksheet)oWB.Worksheets["MyNewWorksheetName"]).Activate();

}
catch (Exception e)
{
    //throw e;
    throw;
}
finally
{
    //Make sure Excel is visible and give the user control
    //of Microsoft Excel's lifetime.
    oXL.Visible = true;
    oXL.UserControl = true;
}

oXL.Save(Type.Missing);

关于c# - 在 C# 中打开 MS Excel 工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23126029/

相关文章:

excel - 使用 mmult 时 VBA 中出现类型不匹配错误

python - 如何使用 openpyxl 使用列表写入 Excel 单元格范围?

java - 如何读取动态Excel文件?

c# - .NET Remoting 被 WCF 取代了吗?

c# - 如何在 .net 中使用 jira rest api 获取项目特定的 jira 问题?

c# - 聚合存储库/服务模式

vba - excel vba中的具体时间

excel - 如何使用excel统计Excel表格的行数

c# - 为什么随机数和正确猜测之间有很强的相关性?

c# - Apps 脚本 API 响应没有 "result" key