Открытие листа MS Excel в C # - PullRequest
2 голосов
/ 18 июня 2010

Я знаю, что мы можем открыть конкретный лист MS Excel, используя C #, указав номер листа (1,2,3 ..) или имя (sheet1, sheet2, sheet3 ...)

У меня есть файл Excel, который имеет 2 листа, 1. Значения, 2. Результаты

Есть ли способ открыть лист с именем листа, т.е. "Значения" вместо 1 или [s | S] heet1 в C # ??

Я просмотрел старые сообщения, но ничего полезного не нашел ...

Итак, еще раз, что я пытаюсь сделать, это открыть рабочий лист Excel, используя его пользовательское имя (Значения) вместо системного имени (1 или [s | S] heet1)

любые входные данные будут с благодарностью!

Ответы [ 2 ]

3 голосов
/ 18 июня 2010

Добавьте ссылку на 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);
0 голосов
/ 18 июня 2010

@ Володя, спасибо! Ваш пост очень помог. Я взял у вас часть декларации рабочего листа и изменил мою на следующую:

        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 с определенным пользователем именем. Например, чтобы открыть рабочий лист с именем Test вместо Sheet1.

  • Ивар
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...