C # как читать указанные ячейки из нескольких листов Excel с помощью взаимодействия? - PullRequest
0 голосов
/ 08 июня 2018

Мне нужно прочитать от «B2» до «H10» (5 строк, 7 столбцов) на первом листе и на втором листе файла Excel.Мой код ниже работал для чтения каждой ячейки с обоих листов, как я могу прочитать нужные ячейки с обоих листов?(Я видел множество решений, использующих активный рабочий лист без указания того, какой лист он читает, и который не может решить мою проблему.)

        using Excel = Microsoft.Office.Interop.Excel;
        using System.Runtime.InteropServices;

        Excel.Application xlApp;
        Excel.Workbook xlWorkBook;
        Excel.Worksheet xlWorkSheet;
        Excel.Range range;

        string str;
        int rCnt;
        int cCnt;
        int rw = 0;
        int cl = 0;

        xlApp = new Excel.Application();

        xlWorkBook = xlApp.Workbooks.Open("PATH", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
        xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item("sheetName");
        range = xlWorkSheet.UsedRange;

        rw = range.Rows.Count;
        cl = range.Columns.Count;


        for (rCnt = 1; rCnt <= rw; rCnt++)
        {

            for (cCnt = 1; cCnt <= cl; cCnt++)
            {

                str = ((range.Cells[rCnt, cCnt] as Excel.Range).Value2).ToString();
                MessageBox.Show(str);

            }

        }

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Я нашел решение, мой код обновлен ниже.

    using Excel = Microsoft.Office.Interop.Excel;
    using System.Runtime.InteropServices;

    Excel.Application xlApp;
    Excel.Workbook xlWorkBook;
    Excel.Worksheet xlWorkSheet;
    Excel.Range range, sRange;

    string str;
    int rCnt;
    int cCnt;
    int rw = 0;
    int cl = 0;

    xlApp = new Excel.Application();

    xlWorkBook = xlApp.Workbooks.Open("PATH", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
    xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item("sheetName");
    range = xlWorkSheet.Cells;
    sRange = range.Range["B2", "H10"];
    rw = sRange.Rows.Count;
    cl = sRange.Columns.Count;


    for (rCnt = 1; rCnt <= rw; rCnt++)
    {

        for (cCnt = 1; cCnt <= cl; cCnt++)
        {

            str = ((sRange.Cells[rCnt, cCnt] as Excel.Range).Value2).ToString();
            MessageBox.Show(str);

        }

    }
0 голосов
/ 08 июня 2018
range = xlWorkSheet.Cells.get_Range("B2:H10").Select()

должен справиться с задачей

Дополнительные примеры можно найти на https://www.add -in-express.com / creation-addins-blog / 2013/10/15 / excel-cell-значения-формулы форматирование-CSharp /

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