C# 用C语言打开MS Excel工作表#

C# 用C语言打开MS Excel工作表#,c#,excel,C#,Excel,我知道我们可以通过提供工作表编号(1,2,3…)或名称(sheet1、sheet2、sheet3…),使用C打开MS Excel的特定工作表 我有一个excel文件,它有2张表,1张。价值观,2。结果 是否有一种方法可以打开给出图纸名称的图纸,即“Values”而不是C中的1或[s|s]heet1 我翻遍了那些旧帖子,但没有发现任何有用的 同样,我要做的是,使用用户定义的名称(值)而不是系统定义的名称(1或[s|s]heet1)打开Excel工作表 任何意见都将不胜感激 在项目中添加对Micro

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

我有一个excel文件,它有2张表,1张。价值观,2。结果

是否有一种方法可以打开给出图纸名称的图纸,即“Values”而不是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);

@沃洛迪,谢谢!你的帖子帮了大忙。 我将您的工作表声明部分改为:

        Excel.Application excelApplication;
        Excel.Worksheet excelWorksheet;
        Excel.Workbook excelWorkbook;
        Excel.Range range;

        excelApplication = new Excel.Application();

        excelWorkbook = (Excel.Workbook)(excelApplication.Workbooks.Open(
            <FILENAME>,
            Type.Missing, true, Type.Missing, Type.Missing, Type.Missing,
            true, Type.Missing, Type.Missing, false, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing));

        excelWorksheet = (Excel.Worksheet)excelWorkbook.Worksheets[<WORKSHEETNAME>];
Excel.Application Excel应用程序;
Excel工作表Excel工作表;
Excel工作簿Excel工作簿;
范围;
excelApplication=新的Excel.Application();
Excel工作簿=(Excel.工作簿)(excelApplication.Workbooks.Open(
,
Type.Missing,true,Type.Missing,Type.Missing,Type.Missing,
true,Type。缺失,Type。缺失,false,Type。缺失,
Type.Missing,Type.Missing,Type.Missing,Type.Missing);
Excel工作表=(Excel.Worksheet)Excel工作簿.Worksheets[];
上面的代码有助于使用用户定义的名称打开Excel工作表。例如,打开名为Test而不是Sheet1的工作表

  • 伊瓦尔

请记住,要在web服务器上使用它,必须在那里安装Excel(Office)。web应用程序的每个实例都将运行一个新的Excel实例。使用NPOI库读取和写入XLS和XLSX文件有另一种解决方案: