Results 1 to 1 of 1

Problem: How to copy excel sheet in C++

Threaded View

  1. #1
    Registered User
    Join Date
    10-06-2005
    Posts
    1

    Problem: How to copy excel sheet in C++

    Hi,

    Anyone here know how to use the sheet->copy() function to copy the sheet in the same workbook using c++. I am writing a software in C++ to duplicate an active sheet in the same workbook.

    I know that in VBA script, the copy function like below:
    Worksheets("Sheet1").Copy After:=Worksheets("Sheet3")

    Anyone know what is the argument to fill in for the function copy? If I left the function copy with no argument below, it will copy the sheet and put it to a new workbook. My intent is to copy the sheet into new sheet within the same work book. I know how to get the sheet pointer for the last sheet, but this function cannot take the sheet pointer as the argument.

    The coding below is working fine if I remove the copy function. Anyone know how to do this?

    Below is some of my coding:

    #import "progid:Excel.Sheet" auto_search auto_rename rename_search_namespace("Office10")
    
    #include <direct.h>  //just to get the current path/directory
    
    int main()
    {
    using namespace Excel;
    _ApplicationPtr pXL;
    pXL.CreateInstance(L"Excel.Application");
    
    pXL->Visible[0] = VARIANT_TRUE;      // show the excel program
    
    WorkbooksPtr pBooks = pXL->Workbooks;
    _WorkbookPtr pBook = pBooks->Open("c:\\myfile2.xls");
    _WorksheetPtr pSheet = pXL->ActiveSheet;
    SheetsPtr worksheets = pBook->Worksheets;
    _WorksheetPtr lastsheet = worksheets->Item[worksheets->Count]; // get the last sheets
    	
    pSheet->Name = "sheetA";
    RangePtr cell = pSheet->Cells;
    cell->Item[3][3] = "test";           //write "test" to cell C3
    
    pSheet->Copy();  // how to fill in the argument?
    
    pBook->Saved[0] = VARIANT_TRUE;
    
    char buff[_MAX_PATH];
    if (_getcwd(buff, _MAX_PATH) == NULL) {
    	printf("Can't Get Current Directory - errno=%d\n", errno);
    	Exit(-1);
    }
    
    sprintf(buff,"%s\\newfile.xls",buff);
    pBook->SaveCopyAs(buff,TRUE);
    pXL->Quit();
    
    return 0;
    }
    Last edited by sgwong; 10-06-2005 at 09:59 PM.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1