Как мне найти последнюю строку с определенным ключевым словом в Excel - PullRequest
0 голосов
/ 19 февраля 2019

Допустим, у меня есть файл Excel, который имеет 5 столбцов и 600 строк, первый столбец имеет идентификатор, второй столбец - имя, третий столбец - фамилию, а 4-й и 5-й столбцы - время.

Мне нужно ввести идентификатор в окно сообщения, а затем найти этот идентификатор в этом файле Excel.Но файл Excel содержит этот идентификатор несколько раз.Как мне найти последнюю строку с этим идентификатором в первом столбце?Эта запись еще не будет иметь времени в 5-м столбце, и мы хотим добавить к ней текущее время.

Заранее спасибо!

1 Ответ

0 голосов
/ 20 февраля 2019

Я сам нашел решение.

 Excel.Application Appl = null;
            Workbook opennwb = null;
            Worksheet wss = null;
            Workbooks opennwbs = null;
            // Save the whole row
            try
            {
                Appl = new Excel.Application();

                opennwbs = Appl.Workbooks;

                opennwb = opennwbs.Open(path,
                   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);

                wss = opennwb.Worksheets[DateTime.Now.ToString("MM-dd-yy").ToString()];

                // Get the count of row and column
                int rows = wss.UsedRange.Rows.Count;
                int columns = 1;
                // Traverse all data
                for (int row = 1; row <= rows; row++)
                {
                    for (int column = 1; column <= columns; column++)
                    {
                        string temp = ((Range)wss.Cells[row, column]).Text.ToString();
                        // If true, get the correspond row
                        if (barcode == temp)
                        {


                            usedrow = row;



                        }

                    }

                }

                return usedrow;
            }
            finally
            {
                //MessageBox.Show("about to quit query excel");


                //release all memory - stop EXCEL.exe from hanging around.

                if (opennwb != null) { opennwb.Close(); Marshal.FinalReleaseComObject(opennwb); opennwb = null; } //release each workbook like this
                if (wss != null) { Marshal.FinalReleaseComObject(wss); wss = null; } //release each worksheet like this
                if (opennwbs != null) { opennwbs.Close(); Marshal.FinalReleaseComObject(opennwbs); opennwbs = null; }
                if (Appl != null) { Appl.Quit(); Marshal.FinalReleaseComObject(Appl); Appl = null; } //release the Excel application 

                GC.Collect();

                //MessageBox.Show("Query closed");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...