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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2009, 16:17   #1
AnnNet
Пользователь
 
Регистрация: 21.07.2008
Сообщений: 57
Вопрос Экспорт из DatsSet в Excel с использованием позднего связывания

Всем здравствуйте. Пишу программу на C#, но пока я еще очень начинающий программист, поэтому возникал такая проблемка:
Из DataSet моего приложения нужно выгрузить данные в Excel.Для работы с последним, в силу определенных причин, использую позднее связывание, эксель открывается нормально.
Экспорт делаю так :
DataTable dt = DataSet.Tables["Doctor"];
object[,] dataExport = new object[dt.Rows.Count, dt.Columns.Count];
for (int i = 0; i < dt.Rows.Count; i++)
for (int j = 0; j < dt.Columns.Count; j++)
dataExport[i, j] = dt.Rows[i][j];
object oRng = oWorksheet.GetType().InvokeMember(" Range", BindingFlags.GetProperty, null, oWorksheet, new object[] { dt.Rows.Count + 1, dt.Columns.Count });
object oRange = oWorksheet.GetType().InvokeMember(" Range", BindingFlags.GetProperty, null, oWorksheet, new object[] { "A2", oRng });
oRange.GetType().InvokeMember("Valu e", BindingFlags.SetProperty, null, oRange, dataExport);

Ругается на последнюю строку, Не может преобразовать тип object [*,*] в object[]. В справке ничего не нашла (может,не умею искать).
Пробовала записать просто строковое значение, а не массив передавать - все отлично было. Подскажите, если кто знает, что здесь не так. Заранее спасибо.
AnnNet вне форума Ответить с цитированием
Старый 05.06.2009, 14:58   #2
AnnNet
Пользователь
 
Регистрация: 21.07.2008
Сообщений: 57
По умолчанию

Никто не ответил, но сама разобралась. Может кому поможет это:
Код:
DataTable dt = DSet.Tables[NameT];
object[,] dataExport = new object[dt.Rows.Count, dt.Columns.Count];
object[] argMass = new object[1];
string rn = "A2:K10000";
object oRange = oWorksheet.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, oWorksheet, new object[] { rn });
object[] val = new object[1];
val[0] = "";
oRange.GetType().InvokeMember("Value", BindingFlags.SetProperty, null, oRange, val);
Marshal.ReleaseComObject(oRange);
for (int i = 0; i < dt.Rows.Count; i++)
 for (int j = 0; j < dt.Columns.Count; j++)
  {
   dataExport[i, j] = dt.Rows[i][j];
   argMass[0] = dataExport[i, j];
   oRange = oWorksheet.GetType().InvokeMember("cells", BindingFlags.GetProperty, null, oWorksheet, new object[] { i + 2, j + 1 });
   oRange.GetType().InvokeMember("Value", BindingFlags.SetProperty, null, oRange, argMass);
   Marshal.ReleaseComObject(oRange);
                                   
   }

Последний раз редактировалось Sazary; 05.06.2009 в 15:07.
AnnNet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт в Excel Hobbit_88 БД в Delphi 5 24.04.2009 10:15
экспорт из Excel в БД Tanuska___:) БД в Delphi 7 27.08.2008 15:31
Экспорт из Access в Excel, Экспорт из отчётов в таблицу Excel Kissedbythegod Microsoft Office Access 1 31.05.2008 22:15
Экспорт из Excel Nemo333 БД в Delphi 3 04.04.2007 15:53
Экспорт из Delphi в Excel micaell Общие вопросы Delphi 0 14.12.2006 01:24