我要在程序中动态的打开一个Excel,现在要取得其中某一张表的内容!

解决方案 »

  1.   

    try
    #import "c:\Program Files\Microsoft Office\Office\mso9.dll" no_namespace \
     rename("DocumentProperties","DocumentPropertiesXL")#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\vbe6ext.olb" no_namespace#import "c:\Program Files\Microsoft Office\Office\excel9.olb" rename("DialogBox","DialogBoxXL") rename("RGB","RGBXL") rename("DocumentProperties","DocumentPropertiesXL") using namespace Excel; ::CoInitialize(NULL);
     try {
      // Start Excel...
      _ApplicationPtr app(L"Excel.Application.9");
      // Make it visible...
      // app->Visible=VARIANT_TRUE;  _WorkbookPtr book = app->Workbooks->Open("C:\\foo.xls");  for (long i=1; i <= book->Worksheets->Count;i++)
      {
      _WorksheetPtr sheet = book->Worksheets->GetItem(i); AfxMessageBox(sheet->Name);
      }  app->Quit();
     }
     catch(_com_error& e)
     {  printf("Error: 0x%x  %S\n", e.Error(), (char*)e.Description()); }  ::CoUninitialize();
      

  2.   

    取值_WorksheetPtr sheet;
    ....
      for(int i = 1 ; i < 5; ++ i) 
     {
       char str[10];
       sprintf(str, "A%d", i);   RangePtr range = sheet->GetRange(_variant_t(str));
       _variant_t val = range->GetValue();   printf( "value of %s = %s\n", str, (char*)(_bstr_t)val);  }