deepak_kumar's avatar
deepak_kumar
New Member
2 months ago
Status:
New Idea

To update test cases on excel testcomplete should have integration with excel.

To update test cases on excel testcomplete should have integration with excel. It will avoid timely efforts on manual  parts on report preparing.

2 Comments

  • scot1967's avatar
    scot1967
    Icon for Champion Level 1 rankChampion Level 1

    We read and write to Excel routinely here.  Are you having a particular issue or just looking for an easier way?  I will add some code snips and links for you here in a few minutes.

     

    P.S.  If you find my posts helpful give me a like and be sure to mark a 'Best Answer' to give credit and help others with the same questions!


  • scot1967's avatar
    scot1967
    Icon for Champion Level 1 rankChampion Level 1

    Here is a simple function to write data to a spreadsheet...

    Ref:  https://support.smartbear.com/testcomplete/docs/testing-with/working-with-external-data-sources/excel/index.html

    function Write2Excel(_valuesObj,_fileName,_sheetName)
    {
      let excelFile = undefined;
      let excelSheet = undefined;
    
      if (!aqFile.Exists(_fileName))
      {  
        // Create a new Excel file and add a new empty sheet to it
        Log.Message(aqString.Format("The %s file does not exist and will be created.", _fileName));
        excelFile = Excel.Create(_fileName);
        excelSheet = excelFile.AddSheet(_sheetName);
        excelFile.Save();
      }  
      
      if (aqFile.Exists(_fileName))
      {
        // Open the existing Excel file
        excelFile = Excel.Open(_fileName);
    
        if(SheetWithTitleExists(excelFile,_sheetName) == false)
        {
          excelSheet = excelFile.AddSheet(_sheetName); 
        }
        else
        {
          excelSheet = excelFile.SheetByTitle(_sheetName);    
        }
        
        Object.entries(_valuesObj).forEach(([key, value]) => 
        {
          if(excelSheet.RowCount == 0)
          {
            // Write the header row
            Object.entries(value).forEach(([key, value]) =>
            {
              //Write Line Item Values to rows. 
              let cellData = "";
              Object.entries(value).forEach(([key, value]) =>
              {
                cellHeader = key;
                cellData = value;
    
              });
              excelSheet.Cell(key, 1).Value = cellHeader;        
              excelSheet.Cell(key, 2).Value = cellData;
            });
          }
          else
          {
            rowIndex = excelSheet.RowCount + 1;      
            Object.entries(value).forEach(([key, value]) =>
            {
              //Write Line Item Values to rows. 
              let cellData = "";
              Object.entries(value).forEach(([key, value]) =>
              {
                cellData = value;
              });
              excelSheet.Cell(key, rowIndex).Value = cellData;        
            });
          }
        });  
      }
      // Save the file to apply the changes
      excelFile.Save();
      //Excel.Close(fileName);
    }
    
    function SheetWithTitleExists(_fileName,_sheetName)
    {
      if (! equal(_fileName, null))
      {
        if (_fileName.SheetCount > 0)
        {
          for (let i = 0; i < _fileName.SheetCount; i++)
          {
            if (equal(_fileName.SheetByIndex(i).Title, _sheetName))
            {
              return true;
            }
          }
          return false;
        }
        else
        {
          return false;
        }
      }
    }
    
    module.exports.Write2Excel = Write2Excel;
    module.exports.SheetWithTitleExists = SheetWithTitleExists;