Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2014, 22:41   #1
irene17
 
Регистрация: 17.04.2014
Сообщений: 5
По умолчанию Проблема чтения из excel-файла (при пересоздании проекта в другой версии VS)

Ситуация такая была функция считывания данных из excel-файла на форму в dataGridView. Изначально проект создавался в VS 2012. Функция работала. После возникла необходимость пересоздать проект в 2008 версии, код перестал работать. При попытке переконвертировать в 2012 и смене .Net на 4.0 ничего не меняется Выдает следующие ошибки:

"object" не содержит определения для "Value" и не был найден метод расширения "Value", принимающий тип "object" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку)

ругается на строку dataGridView1.Rows[k - 3].HeaderCell.Value = range[1, 1].Value.ToString().Trim();

Подскажите, почему так получается и как это исправить.

Последний раз редактировалось irene17; 04.06.2014 в 22:43. Причина: неполная информация
irene17 вне форума Ответить с цитированием
Старый 04.06.2014, 22:42   #2
irene17
 
Регистрация: 17.04.2014
Сообщений: 5
По умолчанию

Сама функция:
Код:
 private void открытьToolStripMenuItem_Click(object sender, EventArgs e) //загрузить данные из файла excel
        {
            try
            {
                dataIsRead = true;

                //Открываем файл Экселя
                OpenFileDialog openDialog = new OpenFileDialog();
                openDialog.Filter = "Файл Excel|*.XLSX;*.XLS";
                
                if (openDialog.ShowDialog() == DialogResult.OK)
                {
                    //Создаём приложение.
                    Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
                    //Открываем книгу.                                                                                                                                                        
                    Microsoft.Office.Interop.Excel.Workbook ObjWorkBook = ObjExcel.Workbooks.Open(openDialog.FileName, 0, true, 5,
 "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
                    //Выбираем таблицу(лист).
                    Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
                    ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];

                    Microsoft.Office.Interop.Excel.Range range = null;

                    //очищаем таблицы
                    dataGridView1.Rows.Clear();
                    dataGridView3.Rows.Clear();
                    dataGridView2.Rows.Clear();
                    dataGridView2.Columns.Clear();

                    int k = 3;//индес строки в excel файле 

                    //Структурная таблица
                    while (ObjWorkSheet.get_Range("A" + k.ToString(), "A" + k.ToString()).Value != null)
                    {
                        //Выбираем область таблицы. 
                        range = ObjWorkSheet.get_Range("A" + k.ToString(), "F" + k.ToString());
                        //Добавляем полученный из ячейки текст.

                        //Добавление новой строки в таблицу
                        dataGridView1.Rows.Add();
                        try
                        {
                            for (int j = 1; j <= 4; j++)
                            {
                                if (j == 1) dataGridView1.Rows[k - 3].HeaderCell.Value = range[1, 1].Value.ToString().Trim();
                                else dataGridView1.Rows[k - 3].Cells[j - 2].Value = range[1, j].Value.ToString().Trim();

                            }
                        }
                        catch { };

                        //это чтобы форма прорисовывалась (не подвисала)...
                        Application.DoEvents();
                        k++;
                    }
                    dataGridView1.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);
                    textBox1.Text = Convert.ToString(k - 3);

                    //Таблица сотрудников
                    ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[2];
                    k = 3;

                    range = ObjWorkSheet.get_Range("A" + (k - 1).ToString(), "B" + (k - 1).ToString());
                    while (ObjWorkSheet.get_Range("A" + k.ToString(), "A" + k.ToString()).Value != null)
                    {
                        range = ObjWorkSheet.get_Range("A" + k.ToString(), "B" + k.ToString());

                        dataGridView3.Rows.Add();
                        try
                        {
                            dataGridView3.Rows[k - 3].HeaderCell.Value = range[1, 1].Value.ToString().Trim();
                            dataGridView3.Rows[k - 3].Cells[0].Value = range[1, 2].Value.ToString().Trim();
                        }
                        catch { }

                        Application.DoEvents();
                        k++;
                    }
                    dataGridView3.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);

                    ObjWorkBook.Close(true, null, null);

                    //Удаляем приложение (выходим из экселя) - ато будет висеть в процессах!
                    ObjExcel.Quit();
                }
            }
            catch
            {
                MessageBox.Show("Для чтения данных из excel-файла необходимо установит Microsoft Excel", "Отсутсвует необходимое ПО", MessageBoxButtons.OK,
                           MessageBoxIcon.Information);
                return;
            }
        }


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Stilet; 05.06.2014 в 07:54.
irene17 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с программой чтения строк файла. CoLT Помощь студентам 12 24.09.2012 17:01
проблема при копировании одного столбца из одного файла в другой файл tanunya Помощь студентам 0 24.02.2012 21:30
Как данные из одного файла Excel сохранить в другой? Papiruzzz Microsoft Office Excel 3 17.01.2011 13:14
Копирование значения строки из одного Excel-файла в другой Janik Microsoft Office Excel 5 20.09.2010 00:29
версии файла в Excel 2010 Алена-2009 Microsoft Office Excel 1 05.08.2010 16:34