返回首页

当我从Excel中保存我的清单控制数据。但是,当我按打开按钮。
我不能打开我保存的文件。

PLZ检查我的代码,并给予建议。谢谢(^ _ ^ _)
我的问题的一部分,这是


CXLEzAutomation XL(false);

      //Get file name for opening Excel file

      CString szFileName = DataRead.GetPathName();

      strThisPath.Format("%s\\%s.xls",save_path,szFileName);   

         

         if(!SetCurrentDirectory(strThisPath))

         {

         if(szFileName.IsEmpty())

            return;

               

         //Close Excel if failed to open file 

         if(!XL.OpenExcelFile(szFileName))

         {

               

           m_cList.DeleteAllItems(); 

 

            CString address, field, value;

          for(int i=1; ; i++)

         {

            address=XL.GetCellValue(1,i+1);  

            field=XL.GetCellValue(2,i+1);    

            value=XL.GetCellValue(3,i+1);    

 

            if ( address == "") 

              break;

 

            m_cList.InsertItem(i-1,address); 

             m_cList.SetItemText(i-1,1,field); 

            m_cList.SetItemText(i-1,2,value); 

 

   }

 

void CFormThird::OnXlSave()

{

//BOOL bRead;



   int mrowNum,   mcolNum;

 

int rowNum = 1;

   int colNum = 1;

   char temp [10];

   CString m_SFileName;

 

   CXLEzAutomation XL(FALSE);

 

   m_SFileName ="MODBUS DATA FILE";

 

   //?? ???



   XL.SetCellValue(colNum++, 1, "Address");

   XL.SetCellValue(colNum++, 1, "Field");

   XL.SetCellValue(colNum++, 1, "Value");

 

   rowNum= m_cList.GetItemCount();

   //   colNum = m_cList.GetItemCount();

   colNum = 3;

 

   //   XL.SetCellValue(mcolNum+1,mrowNum+2,m_cList.GetItemText(mcolNum,mrowNum));

   for (mrowNum=0; mrowNum<rowNum ; mrowNum++)

   {

      for(mcolNum=0; mcolNum<colNum; mcolNum++)

      {

         CString   mText;

         mText   = m_cList.GetItemText(mrowNum,mcolNum);

         XL.SetCellValue(mcolNum+1,mrowNum+2,mText);//m_cList.GetItemText(mcolNum,mrowNum));

      }

   }

 

   char Filter[] = "Excel File(*.xls) |*.xls| ALL FILES(*.*) |*.*|";

 

   CFileDialog DataWrite(FALSE, "Excel File(*.xls)", "*.xls", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, Filter, NULL);

   

   if(DataWrite.DoModal() == IDOK)

   {

      XL.SaveFileAs(DataWrite.GetPathName());

      

   }XL.ReleaseExcel();

}

 



void CFormThird::OnXlOpen()

{

   //Use Windows file dialog to obtain FileName 

   char Filter[] = "Excel File(*.xls) |*.xls| ALL FILES(*.*) |*.*|";

 

   CFileDialog   DataRead(TRUE, // TRUE for FileOpen, FALSE for FileSaveAs

      "xls", NULL,

      OFN_PATHMUSTEXIST|OFN_OVERWRITEPROMPT,

      Filter,

      NULL);

   

   char save_path[MAX_PATH];

   GetCurrentDirectory(MAX_PATH,save_path);

   

   UpdateData(TRUE);

    CString strThisPath;

   GetModuleFileName( NULL, save_path, _MAX_PATH);

         

      CXLEzAutomation XL(false);

      //Get file name for opening Excel file

      CString szFileName = DataRead.GetPathName();

      strThisPath.Format("%s\\%s.xls",save_path,szFileName);   

         

         if(!SetCurrentDirectory(strThisPath))

         {

         if(szFileName.IsEmpty())

            return;

               

         //Close Excel if failed to open file 

         if(!XL.OpenExcelFile(szFileName))

         {

               

           m_cList.DeleteAllItems(); 

 

            CString address, field, value;

          for(int i=1; ; i++)

         {

            address=XL.GetCellValue(1,i+1);  

            field=XL.GetCellValue(2,i+1);    

            value=XL.GetCellValue(3,i+1);    

 

            if ( address == "") 

              break;

 

            m_cList.InsertItem(i-1,address); 

             m_cList.SetItemText(i-1,1,field); 

            m_cList.SetItemText(i-1,2,value); 

 

   }

   XL.ReleaseExcel();

}

回答

评论会员:基督教Graus 时间:2012/02/04
救命之类的事情,你可以说,当你付出的人来帮助你。当你问随机的陌生人,免费为您做的工作,你需要等待。

是您创建能够在Excel中打开文件?如果没有,那么你的保存代码被打破了。如果是这样,那么你就需要加强通过读代码,找出出错的地方。你得到的任何数据?是否有异常抛出?帮助MEEEEE遇到无知以及傲慢,当你拒绝告诉我们,任何有意义的错误。如果你甚至不明白我们要知道,试着去了解这个问题,那么问题几乎可以肯定是太复杂了,你开始:shaphak
评论会员:游客 时间:2012/02/04
|我有一个相同的问题,请帮助我。thnaks