当前位置: 首页 > news >正文

【C#常用操作】

excel相关操作

using Excel = Microsoft.Office.Interop.Excel;public Excel.Application app;
public Excel.Workbooks wbs;
public Excel.Workbook wb;
public Excel.Worksheets wss;
public Excel.Worksheet ws;/// <summary>
/// 取得打开excel句柄
/// </summary>
/// <param name="pathfilename">打开文件路径</param>
public void excel_Open(string pathfilename)
{app = new Microsoft.Office.Interop.Excel.Application();wb = app.Workbooks.Open(pathfilename,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing);
}
/// <summary>
/// 释放句柄,并关闭excel进程
/// </summary>
public void excel_ReleaseResource()
{app.DisplayAlerts = false;     //保存Excel的时候,不弹出是否保存的窗口直接进行保存 app.AlertBeforeOverwriting = false;wb.Save();app.Quit();wb = null;wbs = null;GC.Collect();//垃圾回收Kill(app);app = null;
}/// <summary>
/// 引用dll接口
/// </summary>
/// <param name="hwnd">句柄</param>
/// <param name="ID">进程ID</param>
/// <returns></returns>
[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern int GetWindowThreadProcessId(IntPtr hwnd,out int ID);
/// <summary>
/// 关闭进程
/// </summary>
/// <param name="excel">excel应用变量</param>
public static void Kill(Microsoft.Office.Interop.Excel.Application excel)
{   IntPtr t=new IntPtr(excel.Hwnd);//得到这个句柄,具体作用是得到这块内存入口 int k= 0;   GetWindowThreadProcessId(t,out k);   //得到本进程唯一标志kSystem.Diagnostics.Process p=System.Diagnostics.Process.GetProcessById(k);   //得到对进程k的引用p.Kill();     //关闭进程k
}//向excel中插入图片
public void excel_setImage()
{//读取图片System.Drawing.Image myimage = Image.FromFile(PicPath+strPictureName+".png");System.Drawing.Size size = new Size(myimage.Width, myimage.Height);string imagewidth = size.Width.ToString();//图片的宽度string imagehight = size.Height.ToString();//图片的高度excel_Open(strExcelPath);ws = (Excel.Worksheet)wb.Sheets[2];((Excel.Range)ws.Cells[1][1]).Select();((Excel.Range)ws.Cells[1][1]).Activate();((Excel.Range)ws.Cells[1][1]).RowHeight = 100;float PicLeft, PicTop;//为了图片能够适应单元格的宽高进行的转换PicLeft = Convert.ToSingle(((Excel.Range)ws.Cells[1][1]).Left);PicTop = Convert.ToSingle(((Excel.Range)ws.Cells[1][1]).Top);ws.Shapes.AddPicture(strImagePath, Office.Core.MsoTriState.msoFalse, Office.Core.MsoTriState.msoTrue, PicLeft, PicTop, iWidth, iHight);app.DisplayAlerts = false;     //保存Excel的时候,不弹出是否保存的窗口直接进行保存 app.AlertBeforeOverwriting = false;wb.Save();app.Quit();wb = null;wbs = null;GC.Collect();//垃圾回收Kill(app);app = null;
}

sheet操作

ws = (Excel.Worksheet)wb.Worksheets["Sheet1"];ws = (Excel.Worksheet)wb.Sheets[1];

range/cell操作

Excel.Range range = ws.Range[ws.Cells[1, 1], ws.Cells[10, 10]];int rowsint = ws.Range["C65535"].End[Excel.XlDirection.xlUp].Row;//取得有效数据的行数
int columnsint = ws.Range["IV4"].End[Excel.XlDirection.xlToLeft].Column;//取得有效数据的列数
(Excel.Range)ws.Cells[1, 1]).Text//取得或赋值单元格内容//单元格底色
((Excel.Range)ws.Cells[1, 1]).Interior.ColorIndex = 3;

操作已打开的excel

Workbooks xlBooks;
Workbook xlBook;
Worksheet xlSheet;public void excel_Test()
{// 声明一个对象Excel._Application objExcel;objExcel = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");objExcel.Visible = true;xlBooks = objExcel.Workbooks;var numBooks = xlBooks.Count;//大于0说明有多个excel被打开if (numBooks > 0){//第一个一般是最后被激活的那个excelxlBook = xlBooks[1];// 这里要注意,一定要使用被激活的sheet,否则后续这个sheet句柄无法进行操作xlSheet = (Worksheet)xlBook.ActiveSheet;//range不能直接用//xlSheet.Range[1, 1].Select(); 错误xlSheet.Cells[1, 1].Select();}
}

其他常用处理

//延时处理
public static void Delay(int milliSecond)
{int start = Environment.TickCount;while (Math.Abs(Environment.TickCount - start) < milliSecond)//毫秒{System.Windows.Forms.Application.DoEvents();//可执行某无聊的操作}
}

richTextBox处理

//避免修改部分文字后,再显示其它文字时,颜色全部变成最后设置的颜色,先全转成黑色
richTextBox1.SelectAll();
richTextBox1.SelectionColor = Color.Black;//设置部分文字颜色
richTextBox1.SelectionStart = 0;
richTextBox1.SelectionLength = 1;
richTextBox1.SelectionColor = Color.Red;

API使用方法可以参照官网:

https://learn.microsoft.com/zh-cn/office/vba/api

相关文章:

【C#常用操作】

excel相关操作 using Excel Microsoft.Office.Interop.Excel;public Excel.Application app; public Excel.Workbooks wbs; public Excel.Workbook wb; public Excel.Worksheets wss; public Excel.Worksheet ws;/// <summary> /// 取得打开excel句柄 /// </summary…...

深入理解CountDownLatch计数器

入理解CountDownLatch计数器 其他知识点 Java 多线程基础 深入理解aqs ReentrantLock用法详解 深入理解信号量Semaphore 深入理解并发三大特性 并发编程之深入理解CAS 深入理解CountDownLatch Java 线程池 使用用法 CountDownLatch用法详解 CountDownLatch实现原理 下面例子来…...

从SQL注入绕过最新安全狗WAF中学习fuzz

前言 SQL注入并不是很精通&#xff0c;通过实战绕过WAF来进行加强SQL注入能力&#xff0c;希望对正在学习的师傅能有一丝帮助。 安装 安装前言 我是本地搭建的环境进行测试的 环境是windows11phpstudy2018sqli-labs phpstudy的安装我不再复述&#xff0c;这里简单说一下安全…...

C语言每日一题:12《数据结构》相交链表。

题目&#xff1a; 题目链接 思路一&#xff1a; 1.如果最后一个节点相同说明一定有交点。 2.使用两个循环获取一下长度&#xff0c;同时可以获取到尾节点。 3。注意初始化lenA和lenB为1&#xff0c;判断下一个节点是空是可以保留尾节点的。长度会少一个&#xff0c;尾节点没有…...

【Spring框架】SpringMVC

目录 什么是Spring MVC实现客户端和程序之间的“连接”1.1 RequestMapping1.2GetMapping1.3PostMapping 获取参数2.1.1 获取单个参数2.1.2 获取多个参数2.1.3 获取对象2.2 后端参数重命名2.3 RequestBody 接收JSON对象2.4 获取URL中参数PathVariable2.5 上传⽂件RequestPart2.6…...

HDFS中namenode安全模式

HDFS中namenode安全模式 安全模式的现象探究step1step2step3step4 安全模式的概述控制进入时间和离开条件安全模式自动进入离开安全模式手动进入离开 安全模式的现象探究 step1 HDFS集群在停机状态下&#xff0c;使用hdfs -daemon命令逐个进程启动集群&#xff0c;观察现象首…...

blender凹凸感和置换形变

一、怎么做出凹凸感 需要三个部分的内容&#xff1a; 1、一个基础的纹理&#xff1a;告诉计算机需要用一个什么样的纹理做凹凸&#xff0c;纹理一般采用黑白&#xff0c;在计算机里面&#xff0c;从 0 - 1之间的值可以用从黑到白之间不同的灰度来表示因此&#xff0c;有一张黑白…...

力扣 343. 整数拆分

题目来源&#xff1a;https://leetcode.cn/problems/integer-break/description/ C题解1&#xff1a;动态规划。dp[i] 代表数字i拆分后得到的最大乘积。递归公式为拆分后两个数的最大乘积相乘&#xff0c;即 dp[i] max(dp[i], dp[j] * dp[i-j])。对于n2或3需要另外讨论。 cla…...

【JavaWeb】正则表达式

&#x1f384;欢迎来到边境矢梦的csdn博文&#xff0c;本文主要讲解Java 中正则表达式 的相关知识&#x1f384; &#x1f308;我是边境矢梦&#xff0c;一个正在为秋招和算法竞赛做准备的学生&#x1f308; &#x1f386;喜欢的朋友可以关注一下&#x1faf0;&#x1faf0;&am…...

Vue中常用到的标签和指令

一、标签 在 Vue 中&#xff0c;并没有特定的标签是属于 Vue 的&#xff0c;因为 Vue 是一个用于构建用户界面的框架&#xff0c;可以与 HTML 标签一起使用。Vue 中可以使用的标签和元素基本上与 HTML 标准一致。 以下是一些常见的HTML标签&#xff0c;也可以在 Vue 中使用&a…...

C++设计模式之访问者模式

C访问者设计模式 文章目录 C访问者设计模式什么是设计模式什么是访问者设计模式该模式有什么优缺点优点缺点 如何使用 什么是设计模式 设计模式是一种通用的解决方案&#xff0c;用于解决特定的一类问题。它是一种经过验证的代码组织方式&#xff0c;可以帮助开发人员更快地实…...

Java8的stream常用的操作

记录一下常用的用法 定义测试对象 Datapublic class Employee {//idprivate Integer id;//姓名private String name;//年龄private Integer age;//身高private Double height;//存款private BigDecimal deposit;public Employee(Integer id, String name, Integer age, Double…...

传统计算机视觉

传统计算机视觉 计算机视觉难点图像分割基于主动轮廓的图像分割基于水平集的图像分割交互式图像分割基于模型的运动分割 目标跟踪基于光流的点目标跟踪基于均值漂移的块目标跟踪基于粒子滤波的目标跟踪基于核相关滤波的目标跟踪 目标检测一般目标检测识别之特征一般目标检测识别…...

13-3_Qt 5.9 C++开发指南_基于QReadWriteLock 的线程同步

使用互斥量时存在一个问题: 每次只能有一个线程获得互斥量的权限。如果在一个程序中有多个线程读取某个变量&#xff0c;使用互斥量时也必须排队。而实际上若只是读取一个变量&#xff0c;是可以让多个线程同时访问的&#xff0c;这样互斥量就会降低程序的性能。 例如&#xf…...

opencv04-掩膜

opencv04-掩膜 抠图 #include <iostream> #include <opencv2/highgui/highgui.hpp> #include <opencv2/opencv.hpp> #include <vector> #include <array> #include <algorithm>using namespace std; using namespace cv;int main() {str…...

python解析帆软cpt及frm文件(xml)获取源数据表及下游依赖表

#!/user/bin/evn python import os,re,openpyxl 输入&#xff1a;帆软脚本文件路径输出&#xff1a;帆软文件检查结果Excel#获取来源表 def table_scan(sql_str):# remove the /* */ commentsq re.sub(r"/\*[^*]*\*(?:[^*/][^*]*\*)*/", "", sql_str)# r…...

TypeScript

TypeScript 简称&#xff1a; TS &#xff0c;是 JavaScript 的超集 &#xff0c;简单来说就是&#xff1a; JS 有的 TS 都有 TypeScript Type JavaScript &#xff08;在 JS 基础之上&#xff0c; 为 JS 添加了类型支持 &#xff09; TypeScript 是 微软 开发…...

解决启动vue前端报错:npm ERR! Missing script: “serve“

目录 一、遇到问题 二、出现报错的两个原因 三、解决办法 一、遇到问题 npm ERR! Missing script: "serve" npm ERR! npm ERR! To see a list of scripts, run: npm ERR! npm run npm ERR! A complet...

数据结构 | 线性数据结构——列表

目录 一、无序列表抽象数据类型 二、实现无序列表&#xff1a;链表 2.1 Node类 2.2 UnorderedList类 三、有序列表抽象数据类型 四、实现有序列表 列表是元素的集合&#xff0c;其中每一个元素都有一个相对于其他元素的位置。更具体地说&#xff0c;这种列表成为无序列表…...

【ARM 常见汇编指令学习 6 - bic(位清除), orr(位或), eor(异或)】

文章目录 BIC 指令ORR 位或指令EOR 异或指令 上篇文章&#xff1a;ARM 常见汇编指令学习 5 – arm64汇编指令 wzr 和 xzr 下篇文章&#xff1a;ARM 常见汇编指令学习 7 - LDR 指令与LDR伪指令及 mov指令 BIC 指令 指令格式 bic{条件}{S} Rd&#xff0c;Rn&#xff0c;operan…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题&#xff0c;导致车牌识别率低、逃费率高&#xff0c;传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法&#xff0c;正成为破局关键。该设备安装于车位侧方0.5-0.7米高度&#xff0c;直接规避树枝遮…...