Excel-Plugin手动关闭Excel进程不退出的解决办法

  • 但是在非ThisAddIn .cs文件当中,比如新建功能区的按钮事件,若想访问Excel元素,则必须在前边加上Globals.ThisAddIn才能够正常访问
  • 由于在一般情况下,是根本不会在主程序中去做业务操作的,所以以后所有基本操作的例子,都会按照非主程序的访问方式给出:

 

比如,你在addin上加了个菜单按钮,在事件里面这么写

button1_Click()
{
using Microsoft.Office.Tools.Ribbon;
using Microsoft.Office.Interop.Excel;
using ExcelTools = Microsoft.Office.Tools;

// worksheet级别的操作:
Worksheet wst = ((Worksheet)Globals.ThisAddIn.Application.ActiveSheet);                 // 获取当前选中的Sheet页;
Worksheet wst2 = ((Worksheet)Globals.ThisAddIn.Application.Worksheets["考核情况"]);       // 根据名称获取Sheet页;

// 新建worksheet
Worksheet new_wst;
new_wst = (Worksheet)Globals.ThisAddIn.Application.Worksheets.Add();
new_wst.Name = "新建Sheet页";

int rowsCount = wst.UsedRange.Rows.Count;                                          //获取已经使用的行
int colsCount = wst.UsedRange.Columns.Count;                                        //获取已经使用的列

var content = wst2.Range["A1"].Value;                                              // 获取表中单元格内容
((Range)wst.Range["A8"]).Value = "111";                                             // 写入单元格数据

((Range)wst2.Rows[2, Type.Missing]).Delete(XlDeleteShiftDirection.xlShiftToLeft);         // 删除某一行
((Range)wst2.Cells[1, 2]).EntireColumn.Delete(0);                                    // 删除某一列

// 取出这个表所有的列
// 如果不用UsedRange的话,就会获取到Excel包含空白的所有列
List all_column = new List();
foreach (Range all_col in wst2.UsedRange.Columns)
{
   all_column.Add(all_col.Value2[1, 1]);
}

// 获取当前Excel表的所有表名;
List m_AllSheets = new List();
foreach (var sheetlist in Globals.ThisAddIn.Application.Worksheets)
{
  m_AllSheets.Add(((Worksheet)sheetlist).Name);
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涛哥依旧在

你的鼓励是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值