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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2015, 20:40   #1
Slide95ru
 
Регистрация: 01.08.2014
Сообщений: 9
По умолчанию Сложности с Excel

Суть проблемы такова, выдает ошибку в строке "excelcells.Value2 = dataArray", и ругается вот так " "Необработанное исключение типа "System.Runtime.InteropServices.COM Exception" в mscorlib.dll
Дополнительные сведения: Исключение из HRESULT: 0x800A03EC", пробовал по всякому, но не хочет не в какую, как быть? Что именно обозначает эта ошибка?


Код:
var excelApp = new Excel.Application();                              
            excelApp.Visible = true;
            string templateFile = Directory.GetCurrentDirectory() + @"\Документы\Товарный чек.xls";
            excelApp.Workbooks.Open(templateFile, 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, true);
            Excel._Worksheet workSheet = excelApp.ActiveSheet;
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter("SELECT [Наименование товара], [Кол-во], [Цена] FROM Vivod WHERE id_zakaz = @IdZakaz", conMain);
            DataTable dataTable = new DataTable();
            dataAdapter.SelectCommand.Parameters.Add("@IdZakaz", OleDbType.Integer, 20).Value = ViviodI;
            dataAdapter.Fill(dataTable);
            int RowsCount = dataGridViewVivod.Rows.Count;
            int ColumnsCount = dataGridViewVivod.ColumnCount;
            object[,] dataArray = new object[RowsCount, ColumnsCount];
            for (int i = 0; i < RowsCount; i++)
                for (int j = 0; j < ColumnsCount; j++)
                    dataArray[i, j] = dataGridViewVivod.Rows[i].Cells[j];

            excelappworkbooks = excelApp.Workbooks;
            excelappworkbook = excelappworkbooks[1];
            excelsheets = excelappworkbook.Worksheets;
            excelworksheet = (Excel.Worksheet)excelsheets.get_Item(1);
            excelcells = excelworksheet.get_Range("B15:G" + RowsCount, Type.Missing);
            excelcells.Value2 = dataArray;
            excelworksheet.Rows.AutoFit();
Slide95ru вне форума Ответить с цитированием
Старый 11.06.2015, 13:10   #2
Slide95ru
 
Регистрация: 01.08.2014
Сообщений: 9
По умолчанию

Люди хелп, проблему еще не решил(
Slide95ru вне форума Ответить с цитированием
Старый 11.06.2015, 13:22   #3
Slide95ru
 
Регистрация: 01.08.2014
Сообщений: 9
По умолчанию

Ошибку нашел, но теперь проблема состоит в другом, при заполнении формы Excel все выгледит вот так.
Код:
Код:
var excelApp = new Excel.Application();                              
            excelApp.Visible = true;
            string templateFile = Directory.GetCurrentDirectory() + @"\Документы\Товарный чек.xls";
            excelApp.Workbooks.Open(templateFile, 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, true);
            Excel._Worksheet workSheet = excelApp.ActiveSheet;
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter("SELECT [Наименование товара], [Кол-во], [Цена] FROM Vivod WHERE id_zakaz = @IdZakaz", conMain);
            DataTable dataTable = new DataTable();
            dataAdapter.SelectCommand.Parameters.Add("@IdZakaz", OleDbType.Integer, 20).Value = ViviodI;
            dataAdapter.Fill(dataTable);
            int RowsCount = dataTable.Rows.Count;
            int ColumnsCount = dataTable.Columns.Count;
            object[,] dataArray = new object[RowsCount, ColumnsCount];
            for (int i = 0; i < RowsCount; i++)
                for (int j = 0; j < ColumnsCount; j++)
                    dataArray[i, j] = dataTable.Rows[i][j];

            excelappworkbooks = excelApp.Workbooks;
            excelappworkbook = excelappworkbooks[1];
            excelsheets = excelappworkbook.Worksheets;
            excelworksheet = (Excel.Worksheet)excelsheets.get_Item(1);
            excelcells = excelworksheet.get_Range("B15:G" + RowsCount, Type.Missing);
            excelcells.Value2 = dataArray;
            excelworksheet.Rows.AutoFit();
http://data2.floomby.com/files/share...7GkL2uT3qg.jpg
Slide95ru вне форума Ответить с цитированием
Старый 11.06.2015, 14:08   #4
Slide95ru
 
Регистрация: 01.08.2014
Сообщений: 9
По умолчанию

Выявил такой интересный момент, если указываю значение больше "6"
Код:
get_Range("B15:G" + RowsCount, Type.Missing);
то он начинает выводить всегда с 6 строки.
Slide95ru вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложности с присваиванием zigler Visual C++ 2 10.02.2012 22:09
Сложности с .htaccess xxNpCxx PHP 6 13.02.2011 21:30
программа в сложности O(n). C++. ThisIzGame Помощь студентам 2 14.04.2010 17:59
Сложности с запросом Kolik317 БД в Delphi 5 19.08.2009 12:09
Сложности с вычислениями Adlar Microsoft Office Access 0 23.06.2009 22:20