Добрый день!
Пересмотрел уже вагон видеоуроков, все начинают вопрос чтения их EXCEL откуда-то с середины. Мне бы отелось освоить самые азы. Напишите, плз, простейший код для консольного приложения, используя Microsoft.Office.Interop.Excel
Открыте ранее созданного эксель файла
Чтение в переменную данных из ячейки 1,1
Вывод значения этой пременной на экран в консоли.
Спасибо!
C#
C# - Чтение их Excel файла
советую этот сайт http:// wladm.narod.ru/ C_Sharp/ comexcel.html
цитирую
Чтение информации из ячеек Excel во многом аналогично выводу (см. выше). На выбранном листе необходимо в выбранной книге выбрать одну ячейку или объединенную группу ячеек (метод get_Range или преобразование к Excel.Range)- после чего достаточно преобразовать значения в выделенных ячейках к нужному типу данных.
Создадим в Excel новую книгу, на первом листе запишем соответственно:
Ячейка Что записано
A1 В ячейке A2 число
A2 5
A3 В ячейке A4 число
A3 10,5
Сохраним документ с именем a1.xls в корне диска C.
Запишем и выполним следующий код:
private void button1_Click(object sender, EventArgs e)
{
int i = Convert.ToInt32(((Button)(sender)).Tag);
int viRez;
float vfRez;
string sStr;
switch(i)
{
case 1:
excelapp = new Excel.Application();
excelapp.Visible=true;
excelappworkbooks=excelapp.Workbooks;
//Открываем книгу и получаем на нее ссылку
excelappworkbook=excelapp.Workbooks.Open(@"C:\a1.xls",
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);
excelsheets=excelappworkbook.Worksheets;
//Получаем ссылку на лист 1
excelworksheet=(Excel.Worksheet)excelsheets.get_Item(1);
//Выбираем ячейку для вывода A1
excelcells=excelworksheet.get_Range("A1",Type.Missing);
sStr=Convert.ToString(excelcells.Value2);
Text=sStr+" ";
excelcells=excelworksheet.get_Range("A2",Type.Missing);
viRez = Convert.ToInt32(excelcells.Value2);
Text+=Convert.ToString(viRez)+" ";
excelcells=excelworksheet.get_Range("A3",Type.Missing);
sStr=Convert.ToString(excelcells.Value2);
Text+=sStr+" ";
excelcells=excelworksheet.get_Range("A4",Type.Missing);
vfRez = Convert.ToSingle(excelcells.Value2);
Text+=Convert.ToString(vfRez)+" ";
break;
....
Код не требует пояснений - в заглавии приложения после выполнения будет выведено:
В ячейке A2 число 5 В ячейке A4 число 10,5
цитирую
Чтение информации из ячеек Excel во многом аналогично выводу (см. выше). На выбранном листе необходимо в выбранной книге выбрать одну ячейку или объединенную группу ячеек (метод get_Range или преобразование к Excel.Range)- после чего достаточно преобразовать значения в выделенных ячейках к нужному типу данных.
Создадим в Excel новую книгу, на первом листе запишем соответственно:
Ячейка Что записано
A1 В ячейке A2 число
A2 5
A3 В ячейке A4 число
A3 10,5
Сохраним документ с именем a1.xls в корне диска C.
Запишем и выполним следующий код:
private void button1_Click(object sender, EventArgs e)
{
int i = Convert.ToInt32(((Button)(sender)).Tag);
int viRez;
float vfRez;
string sStr;
switch(i)
{
case 1:
excelapp = new Excel.Application();
excelapp.Visible=true;
excelappworkbooks=excelapp.Workbooks;
//Открываем книгу и получаем на нее ссылку
excelappworkbook=excelapp.Workbooks.Open(@"C:\a1.xls",
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);
excelsheets=excelappworkbook.Worksheets;
//Получаем ссылку на лист 1
excelworksheet=(Excel.Worksheet)excelsheets.get_Item(1);
//Выбираем ячейку для вывода A1
excelcells=excelworksheet.get_Range("A1",Type.Missing);
sStr=Convert.ToString(excelcells.Value2);
Text=sStr+" ";
excelcells=excelworksheet.get_Range("A2",Type.Missing);
viRez = Convert.ToInt32(excelcells.Value2);
Text+=Convert.ToString(viRez)+" ";
excelcells=excelworksheet.get_Range("A3",Type.Missing);
sStr=Convert.ToString(excelcells.Value2);
Text+=sStr+" ";
excelcells=excelworksheet.get_Range("A4",Type.Missing);
vfRez = Convert.ToSingle(excelcells.Value2);
Text+=Convert.ToString(vfRez)+" ";
break;
....
Код не требует пояснений - в заглавии приложения после выполнения будет выведено:
В ячейке A2 число 5 В ячейке A4 число 10,5
Евгений Куделькин
Да, и его я тоже читал. Тоже с середины, не подходит ((
Не рекомендовал бы вам использовать Microsoft.Office.Interop.Excel. Возьмите какую-нибудь свободную библиотеку, типа EPPlus
Евгений Куделькин
Почему?
Похожие вопросы
- Рабта с файлами в архиве C#
- Стоит ли дальше учить C#?
- Программирование на C Sharp (C#)
- Сегодня начал учить c#, решил сделать калькулятор простой и столкнулся с такой ошибкой при компиляции, хелпуйте.
- Что лучше C# или C++?
- Зачем разбивать код в C# на отдельные классы?
- Помогите пожалуйста. Написать на C#
- Python, C, C++, C#, Что выбрать-то?
- Помогите разобраться с заданием! C#
- Стоит ли изучать c# в 13 лет?