Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / экспорт в Excel / 3 сообщений из 3, страница 1 из 1
02.08.2007, 17:20
    #34702153
dj_raven
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
экспорт в Excel
Есть следующий код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
      Application->CreateForm(__classid(TReportDM), &ReportDM);
      ReportDM->ActivateIt(RadioGroup1->ItemIndex);

      AnsiString source;
      source=curdir+"matrix.xls";
      ExcelApplication1->Connect();
      ExcelApplication1->Workbooks->Open(Variant(source));
      ExcelWorkbook1->ConnectTo(ExcelApplication1->ActiveWorkbook);
      ExcelWorksheet1->ConnectTo(ExcelApplication1->ActiveSheet);
      ExcelWorksheet1->set_Visible(LOCALE_USER_DEFAULT, xlSheetVisible);

      AnsiString S1, S2;
      Excel_2k::RangePtr range;
      int x;
      for(x= 0 ; x<ReportDM->ADOQuery1->RecordCount; x++){

         S1="A"+IntToStr(x+ 2 );
         range = ExcelWorksheet1->get_Range(TVariant(S1),TVariant(S1));
         range->set_Value(TVariant(ReportDM->ADOQuery1->Fields->Fields[ 1 ]->AsString));
         range->BorderAround(TVariant( 1 ),xlThin, xlColorIndexAutomatic, TVariant ("Black"));
         range->set_HorizontalAlignment(Variant( 2 ));
         .
         .
         .
         S1="AC"+IntToStr(x+ 2 );
         range = ExcelWorksheet1->get_Range(TVariant(S1),TVariant(S1));
         range->set_Value(TVariant(ReportDM->ADOQuery1->Fields->Fields[ 29 ]->AsString));
         range->BorderAround(Variant( 1 ), xlThin, xlColorIndexAutomatic, Variant ("Black"));
         range->set_HorizontalAlignment(Variant( 2 ));

         S1="AD"+IntToStr(x+ 2 );
         range = ExcelWorksheet1->get_Range(TVariant(S1),TVariant(S1));
         if(ReportDM->ADOQuery1->Fields->Fields[ 30 ]->AsBoolean){
            S2="+";
         }
         else{
            S2="-";
         }
         range->set_Value(TVariant(S2));
         range->BorderAround(Variant( 1 ), xlThin, xlColorIndexAutomatic, Variant ("Black"));
         range->set_HorizontalAlignment(Variant( 3 ));

         S1="AE"+IntToStr(x+ 2 );
         range = ExcelWorksheet1->get_Range(TVariant(S1),TVariant(S1));
         range->set_Value(TVariant(ReportDM->ADOQuery1->Fields->Fields[ 31 ]->AsString));
         range->BorderAround(Variant(xlContinuous), xlThin, xlColorIndexAutomatic, Variant( 1 ));
         range->set_HorizontalAlignment(Variant( 2 ));
         ReportDM->ADOQuery1->Next();
      }
      S1="S"+IntToStr(x+ 2 );

      TSaveDialog *SaveIt=new TSaveDialog(this);
      if(SaveIt->Execute()){
         ExcelWorksheet1->SaveAs(Variant(SaveIt->FileName));
      }
      ExcelWorksheet1->Disconnect();
      ExcelWorkbook1->Disconnect();
      ExcelApplication1->Disconnect();
      delete SaveIt;
Во время исполнения этого кода, если открыт Excel, вылезает файл "matrix.xls", и я не знаю как от него избавится (мне не нужно чтобы он открывался). Мож кто подскажет как избавиться от этого эффекта?
...
Рейтинг: 0 / 0
03.08.2007, 03:38
    #34702902
Ste@lth
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
экспорт в Excel
Если не изменяет память у ExcelApplication есть свойство ConnectKind, которое надо установить в ckNewInstance, по умолчанию стоит ckRunningOrNew
...
Рейтинг: 0 / 0
03.08.2007, 12:06
    #34703602
dj_raven
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
экспорт в Excel
spasibo, oprobuju :)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / экспорт в Excel / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]