【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注入并不是很精通,通过实战绕过WAF来进行加强SQL注入能力,希望对正在学习的师傅能有一丝帮助。 安装 安装前言 我是本地搭建的环境进行测试的 环境是windows11phpstudy2018sqli-labs phpstudy的安装我不再复述,这里简单说一下安全…...
C语言每日一题:12《数据结构》相交链表。
题目: 题目链接 思路一: 1.如果最后一个节点相同说明一定有交点。 2.使用两个循环获取一下长度,同时可以获取到尾节点。 3。注意初始化lenA和lenB为1,判断下一个节点是空是可以保留尾节点的。长度会少一个,尾节点没有…...
【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集群在停机状态下,使用hdfs -daemon命令逐个进程启动集群,观察现象首…...
blender凹凸感和置换形变
一、怎么做出凹凸感 需要三个部分的内容: 1、一个基础的纹理:告诉计算机需要用一个什么样的纹理做凹凸,纹理一般采用黑白,在计算机里面,从 0 - 1之间的值可以用从黑到白之间不同的灰度来表示因此,有一张黑白…...
力扣 343. 整数拆分
题目来源:https://leetcode.cn/problems/integer-break/description/ C题解1:动态规划。dp[i] 代表数字i拆分后得到的最大乘积。递归公式为拆分后两个数的最大乘积相乘,即 dp[i] max(dp[i], dp[j] * dp[i-j])。对于n2或3需要另外讨论。 cla…...
【JavaWeb】正则表达式
🎄欢迎来到边境矢梦的csdn博文,本文主要讲解Java 中正则表达式 的相关知识🎄 🌈我是边境矢梦,一个正在为秋招和算法竞赛做准备的学生🌈 🎆喜欢的朋友可以关注一下🫰🫰&am…...
Vue中常用到的标签和指令
一、标签 在 Vue 中,并没有特定的标签是属于 Vue 的,因为 Vue 是一个用于构建用户界面的框架,可以与 HTML 标签一起使用。Vue 中可以使用的标签和元素基本上与 HTML 标准一致。 以下是一些常见的HTML标签,也可以在 Vue 中使用&a…...
C++设计模式之访问者模式
C访问者设计模式 文章目录 C访问者设计模式什么是设计模式什么是访问者设计模式该模式有什么优缺点优点缺点 如何使用 什么是设计模式 设计模式是一种通用的解决方案,用于解决特定的一类问题。它是一种经过验证的代码组织方式,可以帮助开发人员更快地实…...
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 的线程同步
使用互斥量时存在一个问题: 每次只能有一个线程获得互斥量的权限。如果在一个程序中有多个线程读取某个变量,使用互斥量时也必须排队。而实际上若只是读取一个变量,是可以让多个线程同时访问的,这样互斥量就会降低程序的性能。 例如…...
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 输入:帆软脚本文件路径输出:帆软文件检查结果Excel#获取来源表 def table_scan(sql_str):# remove the /* */ commentsq re.sub(r"/\*[^*]*\*(?:[^*/][^*]*\*)*/", "", sql_str)# r…...
TypeScript
TypeScript 简称: TS ,是 JavaScript 的超集 ,简单来说就是: JS 有的 TS 都有 TypeScript Type JavaScript (在 JS 基础之上, 为 JS 添加了类型支持 ) 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...
数据结构 | 线性数据结构——列表
目录 一、无序列表抽象数据类型 二、实现无序列表:链表 2.1 Node类 2.2 UnorderedList类 三、有序列表抽象数据类型 四、实现有序列表 列表是元素的集合,其中每一个元素都有一个相对于其他元素的位置。更具体地说,这种列表成为无序列表…...
【ARM 常见汇编指令学习 6 - bic(位清除), orr(位或), eor(异或)】
文章目录 BIC 指令ORR 位或指令EOR 异或指令 上篇文章:ARM 常见汇编指令学习 5 – arm64汇编指令 wzr 和 xzr 下篇文章:ARM 常见汇编指令学习 7 - LDR 指令与LDR伪指令及 mov指令 BIC 指令 指令格式 bic{条件}{S} Rd,Rn,operan…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
python爬虫——气象数据爬取
一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用: 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests:发送 …...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...
【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
