49R Ответов: 1

Как получить данные excel в C#, выполнив поиск определенной строки в столбце и распечатав ее детали в приложении C# windows


У меня есть лист excel, содержащий n строк и n столбцов, и я хочу найти первый столбец и распечатать все задержанные в этой строке.только один лист.

Что я уже пробовал:

Excel.Application xlApp = new Excel.Application();//create a new Excel application

            Excel.Workbook xlWorkBook = xlApp.Workbooks.Open(@"C:\sghs\1A\english\FA2.xlsx");//open the workbook

            Excel.Worksheet xlWorkSheet = xlWorkBook.Worksheets["Лист1"];//get the worksheet object

            Excel.Range colRange = xlWorkSheet.Columns["1:3"];//get the range object where you want to search from

            string searchString = admno.Text;

            Excel.Range resultRange = colRange.Find(What: searchString,LookIn: Excel.XlFindLookIn.xlValues,LookAt: Excel.XlLookAt.xlPart,SearchOrder: Excel.XlSearchOrder.xlByRows,SearchDirection: Excel.XlSearchDirection.xlNext);// search searchString in the range, if find result, return a range

            if (resultRange is null)

            {

                MessageBox.Show("Did not found " + searchString + " in column A");

            }

            else

            {

                //then you could handle how to display the row to the label according to resultRange
                textBox1.Text= xlWorkSheet.Rows["1:10"];
            }

         //   xlWorkBook.Close(false);

           // xlApp.Quit();

          //  releaseObject(xlWorkSheet);

            //releaseObject(xlWorkBook);

            //releaseObject(xlApp);

1 Ответов

Рейтинг:
2

#realJSOP

Я написал статью для чтения/синтаксического анализа XLSX или CSV-файла. Возможно, вы сумеете им воспользоваться.

CSV/Excel File Parser - A Revisit[^]


49R

Диалоговое окно openfiledialog ОП = новое диалоговое окно openfiledialog();
строку пт;
пт = "C:\\sghs\\" + с + "\\" + ы + "\\" + Экса + ".XLSX-файл";
ОП.Фильтр = пт;
if (op.ShowDialog() == система.Окна.Формы.свойство DialogResult.ОК)
{
если (файл.Существует(op.FileName))
{
string[] Arr = null;
Арр = ОП.Именем.Расщеплять('.');
если (обр. Длина &ГТ; 0)
{
if (Arr[Arr.Length - 1] == "xls")
sConnectionString = "поставщика=Майкрософт.Джет.Oledb для.4.0;Источник данных=" +ОП.Именем + ";дополнительные свойства='программы Excel 8.0;HDR съемка=да;компания IMEX=1'";
}
else if (Arr[Arr.Length - 1] == "xlsx")
{
sConnectionString = "поставщика=Майкрософт.Туз.Oledb для.12.0;Источник данных=" + ОП.Именем + ";дополнительные свойства='значение Excel 12.0 XML;и режим HDR=да';";
}
}
FillData();
}
}

}
публичная строка sConnectionString;
частная пустота FillData()
{
if (sConnectionString.Длина > 0)
{
OleDbConnection cn = new OleDbConnection(sConnectionString);
{
спицы.Открыть();
DataTable dt = новый DataTable();
OleDbDataAdapter Adpt = new OleDbDataAdapter("select * from [sheet1$]", cn);
Адпт.Заполнить(ДТ);
dataGridView1.Источник данных = ДТ;
}
}
}


он показывает ошибку рядом с файлом.

Описание Кода Серьезности Состояние Подавления Строки Файла Проекта
Ошибка CS0103 имя "файл" не существует в текущем контексте scl C:\Users\psais\source\repos\scl\scl\Form7.cs 59 активен

#realJSOP

Я понятия не имею, почему вы это опубликовали, поскольку это не имеет абсолютно никакого отношения к статье, на которую я дал вам ссылку.