Основной сайт хуманэмулятор.рф | Демо | Купить | API | Wiki
System / excel
connect_by_hwnd
connect_by_hwnd($hwnd,$path_alias,$timeout=3000); - Подключится к уже открытому окну Excel, чтобы работать с его Листами (вместо $excel->open())Функция на вход принимает параметры:
После выполнения функции возвращаемое значение будет равно одному из двух :
Пример использования
<?php // Scenario: Demonstrates how to connect to an Excel file by window handle (HWND) $xhe_host = getenv("RPABOT_HOST_URL"); // Connect functional objects if not already connected if (!isset($path)){ // Path to the init.php file for connecting to the XHE API $path = "../../../Templates/init.php"; // Including init.php grants access to all classes and functionality for working with the XHE API require($path); } // Set variables for method arguments $filePath = "test/test.xlsx"; // Kill any existing Excel processes SYSTEM::$excel->kill(); // Example 1: Open Excel file using shell execute echo("\nExample 1: Open Excel file using shell execute\n"); // Set variables for method arguments $shellOperation = "open"; // Open Excel file using shell execute $result = WINDOW::$app->shell_execute($shellOperation, $filePath); if ($result) { echo("Excel file opened using shell execute: $filePath\n"); } else { echo("Failed to open Excel file using shell execute: $filePath\n"); } // Wait for Excel to open sleep(5); // Get window handle $windowHandle = WINDOW::$window->get_by_class("XLMAIN", true, false)->get_hwnd(); $pathAlias = "@doc1"; // Example 2: Connect to Excel by HWND echo("\nExample 2: Connect to Excel by HWND\n"); // Connect to Excel by HWND $result = SYSTEM::$excel->connect_by_hwnd($windowHandle, $pathAlias); if ($result) { echo("Connected to Excel successfully by HWND with alias: $pathAlias\n"); } else { echo("Failed to connect to Excel by HWND with alias: $pathAlias\n"); } // Get row and column count $rowsCount = SYSTEM::$excel->get_rows_count($pathAlias, 0); $colsCount = SYSTEM::$excel->get_cols_count($pathAlias, 0); echo("Rows count: $rowsCount, Columns count: $colsCount\n"); // Example 3: Display all cell data echo("\nExample 3: Display all cell data\n"); for ($k = 1; $k <= $rowsCount; $k++) { for ($j = 1; $j <= $colsCount; $j++) { $cellValue = SYSTEM::$excel->get_cell($pathAlias, 0, $k, $j); echo($cellValue . "|"); } echo("\n"); } // Example 4: Close the Excel file echo("\nExample 4: Close the Excel file\n"); // Close Excel file $result = SYSTEM::$excel->close($pathAlias); if ($result) { echo("Excel file closed successfully with alias: $pathAlias\n"); } else { echo("Failed to close Excel file with alias: $pathAlias\n"); } // Quit the application WINDOW::$app->quit(); ?>
# Additional paths import sys sys.path.insert(0, '../../../Templates PY/') xhe_host = "127.0.0.1:7010" from xweb_human_emulator import * # начало echo("<hr><font color=blue>excelfile.set_sheet_name</font><hr>") # путь к файлу path="test\\test.xlsx"; excel.kill(); app.shell_execute("open",path) sleep(5); alias_path="@doc1"; hwnd = window.get_by_class("XLMAIN",true,false).get_hwnd(); # 1 echo("\n1. Откроем : "); echo(excel.connect_by_hwnd(hwnd,alias_path)); rows= excel.get_rows_count(alias_path,0); cols= excel.get_cols_count(alias_path,0); # 2 echo("\n2. Выведем все ячейки : "); for i in range(0, rows): for j in range(0, cols): echo(excel.get_cell(alias_path,0,i,j)+"|"); echo("\n"); # 3 echo("\n3. Закроем : "); echo(excel.close(alias_path)); # конец echo("<hr><br>") # Quit app.quit()
#region using using System; using System.Diagnostics; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using System.Threading; using XHE; using XHE.XHE_DOM; using XHE.XHE_System; using XHE.XHE_Window; using XHE.XHE_Web; #endregion class Program:XHEScript { static void Main(string[] args) { // init XHE server = Environment.GetEnvironmentVariable("RPABOT_HOST_URL"); InitXHE(); // начало echo("<hr><font color=blue>excelfile.set_sheet_name</font><hr>"); excel.kill(); var path = "test/test.xlsx"; app.shell_execute("open",path); sleep(5); var alias_path="@doc1"; var hwnd = window.get_by_class("XLMAIN",true,false).get_hwnd(); excel.connect_by_hwnd(hwnd,alias_path); // 1 echo("1. Получить содержимое ячейки : "); echo(excel.get_cell(alias_path,0,1,"3")); // 2 echo("\n2. Задать содержимое ячейки : "); echo(excel.set_cell(alias_path,0,1,"3","new")); // 3 echo("\n3. Получить содержимое ячейки : "); echo(excel.get_cell(alias_path,0,1,"3")); excel.close(alias_path); // конец echo("\n\n"); app.quit(); } }
xhe_host="127.0.0.1:7010";
echo=require("../../../Templates JS/init.js");
// начало
echo("<hr><font color=blue>excelfile.get_cell</font><hr>");
// путь к файлу
var path="test\\test.xlsx";
excel.kill();
app.shell_execute("open",path);
app.sleep(5);
var alias_path="@doc1";
var hwnd = window.get_by_class("XLMAIN",true,false).get_hwnd();
// 1
echo("\n1. Откроем : ");
echo(excel.connect_by_hwnd(hwnd,alias_path));
var rows= excel.get_rows_count(alias_path,0);
var cols= excel.get_cols_count(alias_path,0);
// 2
echo("\n2. Выведем все ячейки : ");
for (var i=1;i<=rows;i++)
{
for (var j=1;j<=cols; j++)
echo(excel.get_cell(alias_path,0,i,j)+"|");
echo("\n");
}
// 3
echo("\n3. Закроем : ");
echo(excel.close(alias_path));
// конец
echo("\n");
// Quit
app.quit();=============================================
excel Объекты DOM System Vision Web Window
=============================================
если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
.