首页 文章

如何使用UFT API写入Excel中的单独列

提问于
浏览
-1

HP UFT API Test - Saving Response/Checkpoint values

我正面临着同样的挑战并找到了上述帖子但是,我想弄清楚下面的内容 .

如何在Excel中的单独列中打印不同的响应值 .

我有4个回复我能够添加第一个,它在excel中正确显示 .

当我添加第二个响应值时,它会打印在同一个单元格中,或者如果我将两个响应值放在一个单独的行中,它会打印在一个单独的单元格中,但是在一行中我需要每个响应打印在它的单独列中 .

ID | PersonName | Address | ZipCode

当您转到属性选项卡下的写入文件时,内容只有一个字段,因此我可以在表达式下添加多个输出,但是它们都在同一行中导出 .

我正在使用Rest和Json UFT-API 12.52版

有任何想法吗?

UPDATE 1: @ManishChristian

谢谢Manish . 我无法执行脚本 . 我的工作表位于我的桌面上,所以我假设不需要添加sql信息或连接到数据库 .

This is what my code looks like:

string price;
price = this.CodeActivity50.Input.Amount.ToString();
System.Data.OleDb.OleDbConnection MyConnection;
System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
string sql = null;
MyConnection = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\\Users/Batman/Desktop/sendAmount.xlsx';Extended Properties=Excel 12.0;Persist Security Info=False");
MyConnection.Open();
myCommand.Connection = MyConnection;
sql = "INSERT into [Sheet1] (COLUMN1) values('" + price + "')";
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
MyConnection.Close();

Error thrown:

Microsoft Access数据库引擎找不到对象'Sheet1' . 确保对象存在,并且您正确拼写其名称和路径名称 . 如果“Sheet1”不是本地对象,请检查网络连接或联系服务器管理员 .

我的工作表名称设置为Sheet1

1 回答

  • 0

    这是使用 UFT 中的 CustomCode 将数据写入Excel文件的SQL自由方式 .

    Assumptions:

    您已将所有四个变量设置为CustomCode的输入参数 . 这是一个如何做到这一点的链接 . 您已在CustomCode中导入了所有必需的内容,以使此代码生效 .

    C# Code:

    using Excel = Microsoft.Office.Interop.Excel;
    //  IMPORT OTHER REQURED CONTENTS
    
    //  CHANGE THESE VARIABLES AS PER YOUR NEED
    //  ALSO CHANGE WS_Method_Type, WS_Method_Name, sEnvironment, TestDataSet_Val  
    //  FROM BELOW LINES AS PER YOUR INPUT VARIABLE NAMES
    String wsMethodType     = this.CodeActivity16.Input.WS_Method_Type.ToString();
    String wsMethodName     = this.CodeActivity16.Input.WS_Method_Name;
    String env              = this.CodeActivity16.Input.sEnvironment;
    String testDataSetVal   = this.CodeActivity16.Input.TestDataSet_Val.ToString();
    
    String sheetName        = "Sheet1";
    String srcFile          = @"PATH \ TO \ YOUR \ XLSX \ FILE";
    
    Excel.Application xlApp = null;
    Excel.Workbook wb       = null;
    Excel.Worksheet worksheet = null;
    Excel.Range excelCell   = null;
    
    xlApp = new Excel.ApplicationClass();
    //xlApp.Visible = true;     //  UN-COMMENT ME TO SEE EXCEL
    if (xlApp == null)
    {
        CodeActivity16.Report("Excel error","Excel could not be started");
    }
    
    //  OPENING EXCEL TO WRITE THE DATA     
    wb = xlApp.Workbooks.Open(srcFile,
                                       0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "",
                                       true, false, 0, true, false, false);
    worksheet = (Excel.Worksheet)wb.Worksheets[sheetName];
    
    int lastUsedRow = worksheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell,Type.Missing).Row;
    
    //  LET'S WRITE INPUT VARIABLE VALUES TO COLUMN A:D IN LAST ROW
    //  CHANGE IT AS PER YOUR NEED
    excelCell       = (Excel.Range)worksheet.get_Range("A" + lastUsedRow, "A" + lastUsedRow);
    excelCell.Value = wsMethodType;
    
    excelCell       = (Excel.Range)worksheet.get_Range("B" + lastUsedRow, "B" + lastUsedRow);
    excelCell.Value = wsMethodName;
    
    excelCell       = (Excel.Range)worksheet.get_Range("C" + lastUsedRow, "C" + lastUsedRow);
    excelCell.Value = env;
    
    excelCell       = (Excel.Range)worksheet.get_Range("D" + lastUsedRow, "D" + lastUsedRow);
    excelCell.Value = testDataSetVal;
    
    wb.Save();
    xlApp.Workbooks.Close();
    xlApp.Quit();
    

    Note:

    您需要添加一些错误处理和清理代码,因为这不是最终代码 .

相关问题