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

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

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

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

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

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

Вообщем есть вот такой код:
Код:
var excelApp = new Excel.Application();                                 // Создание OLE-объекта.
            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, Type.Missing);
            Excel._Worksheet workSheet = excelApp.ActiveSheet;

            workSheet.Cells[9, "A"] = "Код";
            workSheet.Cells[9, "B"] = "Наименование товара";
            workSheet.Cells[9, "C"] = "Срок гарантии";
            workSheet.Cells[9, "D"] = "Цена(руб.)";

            string s = "SELECT [Код], [Наименование], [Срок гарантии], [Цена (руб)] FROM Ассортимент";
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(s, conMain);
            DataTable dataTable = new DataTable();
            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("A11:D11", Type.Missing);
            excelcells.Value2 = dataArray;

            workSheet.Rows.AutoFit();
Суть проблемы в том что массив заполняется полностью, НО в Excel выводит только одну строку, уже всю голову переломал не могу понять почему, помогите плиз.

Последний раз редактировалось Stilet; 29.05.2015 в 14:56.
Slide95ru вне форума Ответить с цитированием
Старый 29.05.2015, 13:38   #2
Slide95ru
 
Регистрация: 01.08.2014
Сообщений: 9
По умолчанию

Тема еще актуальна, Up
Slide95ru вне форума Ответить с цитированием
Старый 29.05.2015, 14:39   #3
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Код:
excelcells = excelworksheet.get_Range("A11:D11", Type.Missing);
Тут пробуйте не D11, а D 11+RowsCount
pu4koff вне форума Ответить с цитированием
Старый 31.05.2015, 06:28   #4
Slide95ru
 
Регистрация: 01.08.2014
Сообщений: 9
По умолчанию

pu4koff, ага спасибо заработало как надо, но вот дилема, приминил тот же код к другой форме ( но смысл тот же) поменял SQL запрос и он мне выводит теперь какую то вакханалия, вместо того чтобы начинать с 11 строки, он заполняет все начиная с самого верха и до 11 строки (
Slide95ru вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод массива ksesh Помощь студентам 10 10.07.2014 11:39
инициализация массива, вывод массива и обработка массива должны быть реализованы с помоshью функций airesjke Помощь студентам 0 02.03.2012 16:14
Вывод массива McFrey Помощь студентам 2 26.12.2011 20:50
вывод массива saix Общие вопросы C/C++ 3 26.03.2011 23:13
вывод массива DrSMERTb C++ Builder 6 23.02.2011 18:07