HP UFT API Test - Saving Response/Checkpoint values
我面临同样的挑战并找到了上述帖子但是,我想弄清楚下面的内容。
如何在Excel中的单独列中打印不同的响应值。
我有4个回复我能够添加第一个,它在excel中正确显示。
当我添加第二个响应值时,它会在同一个单元格中打印,或者如果我将两个响应值放在一个单独的行中,它会打印在一个单独的单元格中,但是在一行中我需要每个响应都打印在其中“'单独的专栏。
ID | PersonName | Address | ZipCode
当您转到属性选项卡下的写入文件时,内容只有一个字段,因此我可以在表达式下添加多个输出,但它们都在同一行中导出。
我正在使用Rest和Json UFT-API 12.52版
有什么想法吗?
更新1:@ManishChristian
谢谢Manish。我无法执行脚本。我的工作表位于我的桌面上,所以我假设不需要添加sql信息或连接到数据库。
这就是我的代码:
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();
抛出错误:
Microsoft Access数据库引擎找不到该对象 '工作表Sheet&#39 ;.确保对象存在,并拼写其名称和 路径名称正确。如果' Sheet1'不是本地对象,检查你的 网络连接或联系服务器管理员。
我的工作表名称设置为Sheet1
答案 0 :(得分:0)
以下是使用 CustomCode
中 UFT
将数据写入Excel文件的SQL免费方式。
假设:
- 您已将
Input parameter
的所有四个变量设置为CustomCode
。这是link如何做到这一点。- 您已在CustomCode中导入了所有必需的内容,以使此代码生效。
C#代码:
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();
注意:
您需要添加一些错误处理和清理代码,因为这不是最终代码。