проблема заключается в записи данных в определенные ячейки и файл поврежден - PullRequest
0 голосов
/ 03 января 2019

Нелегко 1. записать данные в определенные ячейки (файл Excel) и 2. Файл Excel поврежден после записи, сохранения, копирования (используйте Visual C ++ 6.0 в ОС Windows 7)

//входная строка данных Excel (конкретные ячейки, такие как B6 ~ B8, B11 ...)

CString strOneRecord = null;
for( pos = strList.GetHeadPosition(); pos != posTail; )
{
  CString str = recordList.GetNext( pos );
  strOneRecord += str;
  strOneRecord += szSeparator; 
  strOneRecord += "\t";
}

// сохранение файла и копирование нового файла

archiveContent.WriteString(strOneRecord);
archiveContent.Close();
filePersistent.Close(); 
CopyFile(FALSE);

введите описание изображения здесь

1 Ответ

0 голосов
/ 04 января 2019

решаю по excel9.h

    CString sSub;
    BOOL    blNewXls = FALSE;
    int nCol;
    int nSheetNum;
    int nCnt;
    CString strSerialNo,strInspector;

    COleVariant VOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);    
    _Application objApp;
    _Workbook objBook;
    Workbooks objBooks;
    Worksheets objSheets;
    _Worksheet objSheet;
    Range objRange;
    Font ft;
    LPDISPATCH lpDisp;

    if( !objApp.CreateDispatch("Excel.Application") ){AfxMessageBox("XLS ERROR");   return FALSE;}
    objApp.SetVisible(TRUE);
    objApp.SetUserControl(TRUE);
    lpDisp = objApp.GetWorkbooks();
    objBooks.AttachDispatch(lpDisp);

   lpDisp = objBooks.Open(destFileName, VOptional, VOptional, VOptional,VOptional, VOptional, VOptional, VOptional, VOptional, VOptional, VOptional, VOptional, VOptional);
   objBook.AttachDispatch(lpDisp);
   lpDisp = objBook.GetSheets();
   objSheets.AttachDispatch(lpDisp);

   lpDisp = objSheets.GetItem(COleVariant((long)1));
   objSheet.AttachDispatch(lpDisp);

    objRange = objSheet.GetRange(COleVariant("C2"), COleVariant("C2")); 
    //excel cell number
    sSub.Format("%s", row[0]);
    objRange.SetValue(COleVariant(CString(sSub)));     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...