|
экспорт в Excel
#34702153
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
|
|
|
|
Есть следующий код:
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", и я не знаю как от него избавится (мне не нужно чтобы он открывался). Мож кто подскажет как избавиться от этого эффекта?
|
|
|