在 Excel xll 自動注冊操作 中使用東方仙盟軟件2————仙盟創夢IDE

 // 獲取當前工作表名稱string sheetName = (string)XlCall.Excel(XlCall.xlfGetDocument, 7);// 構造動態名稱(例如:Sheet1!MyNamedCell)string fullName = $"'{sheetName}'!MyNamedCell";// 獲取引用并設置值var namedRange = (ExcelReference)XlCall.Excel(XlCall.xlfName, fullName);namedRange.SetValue($"來自 {sheetName} 的值");

?設置表格A5

 public static void SetRangeA5F10(){try{cl_日志.write_log("招標專家", "執行", "SetRangeA5F10");// 創建一個6行6列的數組(A到F共6列,5到10共6行)object[,] values = new object[6, 6];// 填充示例數據for (int row = 0; row < 6; row++){for (int col = 0; col < 6; col++){// values[row, col] = $"Row{row + 5}Col{col + 1}";string 字符串= $"Row{row + 5}Col{col + 1}";var cell = new ExcelReference(row, col); // A1單元格// 方法1:使用SetValue設置公式字符串(需以等號開頭)cell.SetValue(字符串);}}// 設置A1單元格的公式//   var cell = new ExcelReference(0, 0); // A1單元格// 方法1:使用SetValue設置公式字符串(需以等號開頭)//  cell.SetValue("=SUM(B1:B10)");// 方法2:使用xlcFormula命令(更可靠)// XlCall.Excel(XlCall.xlcFormula, cell, "=AVERAGE(C1:C10)");// 獲取Sheet1的索引int sheetId = 1; // Sheet1通常是第一個工作表// 設置區域的值//   object result = XlCall.Excel(//     XlCall.xlcSetValue,//     XlCall.Excel(XlCall.xlfR1C1ToA1, 5, 1, sheetId), // A5//      values// );//  XlCall.Excel()//  if (result is ExcelError && (ExcelError)result != ExcelError.ExcelErrorNull)//  {//  throw new System.Exception($"Excel操作失敗: {result}");//     cl_日志.write_log("招標專家", "StartExpertSelection", ex.Message);//    }}catch (System.Exception ex){//  System.Windows.Forms.MessageBox.Show($"發生錯誤: {ex.Message}", "錯誤",//  System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);cl_日志.write_log("招標專家", "StartExpertSelection", ex.Message);}}

查找非空單元格

using ExcelDna.Integration;public static class RangeOperations
{[ExcelFunction(Description = "獲取指定工作表的非空區域(通過公式)")]public static object GetNonEmptyRange(string sheetName = "Sheet1"){try{// 構建公式:獲取工作表的已用區域地址string formula = $"=IFERROR(ADDRESS(1,1,4,,\"{sheetName}\")&\":\"&ADDRESS(MAX(IF({sheetName}!1:1048576<>"",ROW({sheetName}!1:1048576))),MAX(IF({sheetName}!1:1048576<>"",COLUMN({sheetName}!1:1048576)))),\"\")";// 計算公式string rangeAddress = (string)XlCall.Excel(XlCall.xlfEvaluate, formula);if (string.IsNullOrEmpty(rangeAddress)){return "錯誤: 未找到非空區域";}// 將地址轉換為ExcelReferencereturn new ExcelReference(rangeAddress);}catch (Exception ex){return $"錯誤: {ex.Message}";}}
}

查找非空

[ExcelFunction(Description = "手動查找指定工作表的非空區域")]
public static object FindNonEmptyRange(string sheetName = "Sheet1")
{try{// 獲取工作表實例(通過COM對象,需引用Microsoft.Office.Interop.Excel)var excelApp = (Excel.Application)ExcelDnaUtil.Application;var worksheet = excelApp.Worksheets[sheetName];if (worksheet == null){return $"錯誤: 找不到工作表 '{sheetName}'";}// 查找最后一行和最后一列Excel.Range lastRow = worksheet.Cells.Find("*", worksheet.Cells[1], Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlPrevious);Excel.Range lastCol = worksheet.Cells.Find("*", worksheet.Cells[1], Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, Excel.XlSearchOrder.xlByColumns, Excel.XlSearchDirection.xlPrevious);if (lastRow == null || lastCol == null){return "錯誤: 未找到非空單元格";}// 構建區域地址string rangeAddress = $"{worksheet.Name}!{worksheet.Cells[1, 1].Address}:{lastRow.Address}{lastCol.Column}";// 釋放COM對象(避免內存泄漏)System.Runtime.InteropServices.Marshal.ReleaseComObject(lastRow);System.Runtime.InteropServices.Marshal.ReleaseComObject(lastCol);System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);return new ExcelReference(rangeAddress);}catch (Exception ex){return $"錯誤: {ex.Message}";}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/80938.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80938.shtml
英文地址,請注明出處:http://en.pswp.cn/web/80938.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

nginx日志

目錄 實驗要求&#xff1a; 實驗1&#xff1a; 1.使用vim打開/etc/nginx/nginx.conf查看內容 2.重新讀取文件并且重啟軟件 3.實時查看nginx日志 實驗2&#xff1a; 1.使用vim打開/etc/rsyslog.conf 2.配置此文件 3.保存退出后&#xff0c;將核心防護與防火墻關閉。 4.…

【高德開放平臺-注冊安全分析報告】

前言 由于網站注冊入口容易被黑客攻擊&#xff0c;存在如下安全問題&#xff1a; 暴力破解密碼&#xff0c;造成用戶信息泄露短信盜刷的安全問題&#xff0c;影響業務及導致用戶投訴帶來經濟損失&#xff0c;尤其是后付費客戶&#xff0c;風險巨大&#xff0c;造成虧損無底洞…

2024 CKA模擬系統制作 | Step-By-Step | 3、CKA考試系統的技術設置

目錄 免費獲取題庫配套 CKA_v1.31_模擬系統 一、免費提權配置 1、使用vim 編輯/etc/sudoers 二、安裝命令 1、安裝運行時接口命令 2、安裝Etcd命令 3、配置K8S命令自動補全 三、配置Kubectl 訪問集群 1、Master節點 2、Node01節點 四、SSH配置 1、Node01節點candi…

微信小程序請求扣子(coze)api的例子

1. 準備工作 在開始之前&#xff0c;確保已經完成了以下準備工作&#xff1a; 創建并發布了 Coze 智能體。獲取了個人訪問令牌&#xff08;Personal Access Token&#xff09;&#xff0c;這是用于授權的關鍵憑證。確認目標智能體的 Bot ID 和其他必要參數已準備就緒。 2. 請…

visual studio重新安裝如何修改共享組件、工具和SDK路徑方案

安裝了VsStudio后,如果自己修改了Shared路徑&#xff0c;當卸載舊版本&#xff0c;需要安裝新版本時發現&#xff0c;之前的Shared路徑無法進行修改&#xff0c;這就很坑了 但是卻遇到了路徑無法修改的問題…真讓人頭大&#xff0c;當然不修改也可以&#xff0c;有時候&#x…

【Python 算法零基礎 4.排序 ② 冒泡排序】

目錄 一、引言 二、算法思想 三、時間復雜度和空間復雜度 1.時間復雜度 2.空間復雜度 四、冒泡排序的優缺點 1.算法的優點 2.算法的缺點 五、實戰練習 88. 合并兩個有序數組 算法與思路 ① 合并數組 ② 冒泡排序 2148. 元素計數 算法與思路 ① 排序 ② 初始化計數器 ③ 遍歷數組…

Java設計模式之橋接模式:從入門到精通

文章目錄 1. 橋接模式概述1.1 定義與核心思想1.2 模式結構1.3 通俗理解2. 橋接模式詳解2.1 為什么需要橋接模式2.2 橋接模式與相關模式對比2.3 橋接模式的優缺點3. 橋接模式實現步驟3.1 實現步驟詳解3.2 代碼示例:遙控器與電視4. 橋接模式的高級應用4.1 多維度擴展4.2 與工廠模…

AI與.NET技術實操系列(六):實現圖像分類模型的部署與調用

引言 人工智能&#xff08;AI&#xff09;技術的迅猛發展推動了各行各業的數字化轉型。圖像分類&#xff0c;作為計算機視覺領域的核心技術之一&#xff0c;能夠讓機器自動識別圖像中的物體、場景或特征&#xff0c;已廣泛應用于醫療診斷、安防監控、自動駕駛和電子商務等領域…

Cause: org.apache.ibatis.ognl.OgnlException: sqlSegment

17:12:47.358 [http-nio-11080-exec-2] ERROR c.c.f.w.e.GlobalExceptionHandler - [handleRuntimeException,100] - 請求地址/xx/xxx/xxx/xxx/xxx/8bbe5b132a7a4d9bb28cedfeac94d69f,發生未知異常. org.mybatis.spring.MyBatisSystemException: nested exception is org.apach…

jmeter登錄接口生成一批token并寫入csv文件

背景&#xff1a;大部分項目真實的業務接口都是需要token鑒權的&#xff0c;想對一批核心業務接口進行并發壓測&#xff0c;必然要先生成一批token給這些接口并發循環調用。 基本的思路是這樣的&#xff1a;一批手機號csv文件 -》登錄接口循環讀取csv文件并生成token -》每次…

技術篇-2.3.Golang應用場景及開發工具安裝

Golang 雖然語法簡潔&#xff0c;上手也較快&#xff0c;但其在高并發、微服務和云原生領域的優勢明顯&#xff0c;要真正精通并靈活運用仍需積累大量實踐經驗。與 Java 借助重量級框架不同&#xff0c;Go 傾向于使用標準庫和輕量級第三方包來構建高性能、低延遲的系統。 1.1應…

Java面試問題基礎篇

面向對象 面向對象編程&#xff1a;拿東西過來做對應的事情 特征&#xff1a; 封裝&#xff1a;對象代表什么&#xff0c;就要封裝對應的數據&#xff0c;并提供數據對應的行為 繼承&#xff1a;Java中提供一個關鍵字extends&#xff0c;用這個關鍵字可以讓一個類和另一個類…

SpringBoot的前世今生

1. Spring Spring 特性&#xff1a;IOC、AOP、DI&#xff0c; Spring&#xff1a;解決對象耦合的問題&#xff0c;在 applicationContext.xml 中申明 bean&#xff0c;Spring在啟動時會解析xml文件進行裝載&#xff0c;當需要用對象時直接從容器中拿取bean。 Spring萬能膠&a…

微信小程序自行diy選擇器有效果圖

效果圖 實現思路 主要運用到小程序自帶視圖容器《swiper》 運用到的屬性《vertical》《display-multiple-items》《current》《animationfinish》 滑動方向變為縱向 vertical&#xff1a;true 顯示的滑塊數量 display-multiple-items&#xff1a;5 當前所在滑塊的 index curr…

【實用教程】如何快速搭建一套私有的埋點系統?

這篇教程將基于開源項目-ClkLog&#xff0c;教大家快速搭建一套自有的埋點系統&#xff0c;從0開始完成數據采集、分析與展示&#xff0c;全流程掌控用戶行為數據。 ClkLog是一款支持私有化部署的全開源用戶行為數據采集與分析系統&#xff0c;兼容Web、App、小程序多端埋點&am…

falsk模型-flask_sqlalchemy增刪改查

1、增、刪、改 增 home_bp.route(/useradd) def user_add():users []for i in range(10,20):user User()user.name 冰冰 str(i)user.age 20iusers.append(user)try:db.session.add_all(users)db.session.commit()return jsonify({code:1,info:success})except Exception…

【專題】機器學習期末復習資料

機器學習期末復習資料&#xff08;題庫&#xff09; 鏈接&#xff1a;https://blog.csdn.net/Pqf18064375973/article/details/148105494?sharetypeblogdetail&sharerId148105494&sharereferPC&sharesourcePqf18064375973&sharefrommp_from_link 【測試】 Art…

SpringCloud Alibaba微服務-- Sentinel的使用(筆記)

雪崩問題&#xff1a; 小問題引發大問題&#xff0c;小服務出現故障&#xff0c;處理不當&#xff0c;可能導致整個微服務宕機。 假如商品服務出故障&#xff0c;購物車調用該服務&#xff0c;則可能出現處理時間過長&#xff0c;如果一秒幾十個請求&#xff0c;那么處理時間過…

5:OpenCV—圖像亮度、對比度變換

1.更改圖像和視頻的亮度 更改亮度 更改圖像的亮度是常用的點操作。在此操作中&#xff0c;圖像中每個像素的值應增加/減少一個常數。要更改視頻的亮度&#xff0c;應對視頻中的每一幀執行相同的操作。 如果要增加圖像的亮度&#xff0c;則必須為圖像中的每個像素添加一些正常…

【工作流】Fastgpt配置豆包模型-火山引擎

V4.9.7 Fastgpt現在不通過oneapi 來配置模型和渠道了&#xff0c; 可以直接在頁面進行設置 首先在賬號- 模型提供商里面 填入豆包的信息&#xff1a; 渠道名隨便填&#xff0c;廠商選豆包&#xff0c; 然后選3個模型&#xff0c;如圖所示 如果沒有填入模型映射的話是沒辦法 …