如何处置我的 Excel 应用程序

2024-01-11

我的代码如下

Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(file);

Excel.Worksheet xlSheet = xlWorkbook.Sheets[1]; // get first sheet
Excel.Range xlRange = xlSheet.UsedRange;

这些是我的函数中使用的唯一变量

foreach (Excel.Worksheet XLws in xlWorkbook.Worksheets)
{
    // do some stuff 

    xlApp.UserControl = false;

    if (xlRange != null)
        System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlRange);

    if (xlSheet != null)
        System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlSheet);

    if (xlWorkbook != null)
        System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlWorkbook);

    xlRange = null;
    xlSheet = null;
    xlWorkbook = null;
    xlApp.Quit();

    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlApp);
}

但我还是明白Excel文件在任务管理器中

请帮忙?


终止 MainWindowTitle 值为空的 Excel 进程。下面是一个示例源代码。

    Microsoft.Office.Interop.Excel.Application oXL;
    Microsoft.Office.Interop.Excel._Workbook oWB;
    Microsoft.Office.Interop.Excel._Worksheet oSheet;
    Microsoft.Office.Interop.Excel.Range oRng;
    object misvalue = System.Reflection.Missing.Value;
    try
    {
        //Start Excel and get Application object.
        oXL = new Microsoft.Office.Interop.Excel.Application();
        oXL.Visible = true;

        //Get a new workbook.
        oWB = (Microsoft.Office.Interop.Excel._Workbook)(oXL.Workbooks.Add(""));
        oSheet = (Microsoft.Office.Interop.Excel._Worksheet)oWB.ActiveSheet;

        //Add table headers going cell by cell.
        oSheet.Cells[1, 1] = "First Name";
        oSheet.Cells[1, 2] = "Last Name";
        oSheet.Cells[1, 3] = "Full Name";
        oSheet.Cells[1, 4] = "Salary";

        //Format A1:D1 as bold, vertical alignment = center.
        oSheet.get_Range("A1", "D1").Font.Bold = true;
        oSheet.get_Range("A1", "D1").VerticalAlignment =
            Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;

        // Create an array to multiple values at once.
        string[,] saNames = new string[5, 2];

        saNames[0, 0] = "John";
        saNames[0, 1] = "Smith";
        saNames[1, 0] = "Tom";

        saNames[4, 1] = "Johnson";

        //Fill A2:B6 with an array of values (First and Last Names).
        oSheet.get_Range("A2", "B6").Value2 = saNames;

        //Fill C2:C6 with a relative formula (=A2 & " " & B2).
        oRng = oSheet.get_Range("C2", "C6");
        oRng.Formula = "=A2 & \" \" & B2";

        //Fill D2:D6 with a formula(=RAND()*100000) and apply format.
        oRng = oSheet.get_Range("D2", "D6");
        oRng.Formula = "=RAND()*100000";
        oRng.NumberFormat = "$0.00";

        //AutoFit columns A:D.
        oRng = oSheet.get_Range("A1", "D1");
        oRng.EntireColumn.AutoFit();

        oXL.Visible = false;
        oXL.UserControl = false;
        oWB.SaveAs("c:\\test505.xls", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing,
                false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

        oWB.Close(null, null, null);
        oXL.Quit();  //MainWindowTitle will become empty afer being close

        System.Runtime.InteropServices.Marshal.FinalReleaseComObject(oXL);
        System.Runtime.InteropServices.Marshal.FinalReleaseComObject(oWB);

        Process[] excelProcesses = Process.GetProcessesByName("excel");
        foreach (Process p in excelProcesses)
        {
            if (string.IsNullOrEmpty(p.MainWindowTitle)) // use MainWindowTitle to distinguish this excel process with other excel processes 
            {
                p.Kill();
            }
        }
    }
    catch (Exception ex2)
    {

    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处置我的 Excel 应用程序 的相关文章

  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • 如何在 .NET Framework 2.0 中模拟“Func<(Of <(TResult>)>) 委托”?

    我尝试使用这个类代码项目文章 http www codeproject com KB threads AsyncVar aspx在 VB NET 和 NET Framework 2 0 中 除了这一行之外 所有内容似乎都可以编译Privat
  • 为什么 int8_t 和用户通过 cin 输入显示奇怪的结果[重复]

    这个问题在这里已经有答案了 一小段代码让我发疯 但希望你能阻止我跳出窗外 看这里 include
  • 如何将 protobuf-net 与不可变值类型一起使用?

    假设我有一个像这样的不可变值类型 Serializable DataContract public struct MyValueType ISerializable private readonly int x private readon
  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 如何创建包含 IPv4 地址的文本框? [复制]

    这个问题在这里已经有答案了 如何制作一个这样的文本框 我想所有的用户都见过这个并且知道它的功能 您可以使用带有 Mask 的 MaskedTestBox000 000 000 000 欲了解更多信息 请参阅文档 http msdn micr
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 具有交替类型的可变参数模板参数包

    我想知道是否可以使用参数包捕获交替参数模式 例如 template
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分
  • C# HashSet 只读解决方法

    这是示例代码 static class Store private static List
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 不同类型指针之间的减法[重复]

    这个问题在这里已经有答案了 我试图找到两个变量之间的内存距离 具体来说 我需要找到 char 数组和 int 之间的距离 char data 5 int a 0 printf p n p n data 5 a long int distan
  • 调用堆栈中的“外部代码”是什么意思?

    我在 Visual Studio 中调用一个方法 并尝试通过检查调用堆栈来调试它 其中一些行标记为 外部代码 这到底是什么意思 方法来自 dll已被处决 外部代码 意味着该dll没有可用的调试信息 你能做的就是在Call Stack窗口中单
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看
  • 当从finally中抛出异常时,Catch块不会被评估

    出现这个问题的原因是之前在 NET 4 0 中运行的代码在 NET 4 5 中因未处理的异常而失败 部分原因是 try finallys 如果您想了解详细信息 请阅读更多内容微软连接 https connect microsoft com
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • 使用 ruby​​ 将 unicode 转换为字符

    我找到了unicode的汉字词典 我正在尝试用这本字典建立一个字符数据库 但我不知道如何将 unicode 转换为字符 p 国 unpack U first this gives the unicode 22269 怎样才能转换22269返
  • Python os.forkpty 为什么我不能让它工作

    import pty import os import sys import time pid fd os forkpty if pid 0 Slave os execlp su su MYUSERNAME c id Master prin
  • 如何使用 Go 驱动程序在 Mattermost 中从机器人发送直接消息?

    使用 Mattermost 的 Go 驱动程序 是否可以从机器人帐户向用户发送直接消息 我一直在尝试下面的这种方法 但我不断收到错误 您没有适当的权限 我已经多次检查了机器人的权限 它应该能够发送消息 我已经确认它也可以将消息发送到公共渠道
  • Android 在首选项中存储数组

    我知道只有原语可以存储在android首选项中 但是数组算吗 我可以在 Android 首选项中存储字符串或布尔值数组吗 仅当将数组转换为字符串时
  • 如何在 RNN 中嵌入句子序列?

    我正在尝试制作一个 RNN 模型 在 Pytorch 中 它需要几个句子 然后将其分类为Class 0 or Class 1 为了解决这个问题 我们假设句子的 max len 为 4 max amount of time steps 为 5
  • 更改 ListView 中 GridView 行的背景颜色

    我有一个列表视图如下
  • 为什么不使用抽象类而不是接口?

    我正在考虑使用带有所有抽象成员的抽象类而不是接口 以避免显式接口实现样板代码 所以而不是 type IMyInterface abstract Name string abstract Text string type MyClass me
  • 从具有多个结果的矩阵构建地图

    我有一个未知 n x m 维度的输入矩阵 由 1 和 0 填充 例如 5x4 矩阵 A array 1 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 Goal 我需要在之间创建 1 1 地图as many尽可能
  • VS 链接器失败,并出现 std::string 方法的“对象已存在”错误

    首先 我必须强调 我已经尝试了相当长的时间来解决它 但我不知道我错过了什么 或更准确地说 我不明白什么 任何帮助将不胜感激 我有一个名为 static tools 的项目 它编译为静态库 称为静态工具库并且它使用STL 我使用 MD 编译该
  • 查询 std::ostringstream 内容

    是否可以搜索内容std ostringstream不使用std ostringstream str 成员函数创建一个std string寻找 我有以下内容并希望避免构建std string每次调用时都会实例化flush include
  • 在android中将textview放在imageview之上

    我有一个listview 有一个单一的imageview这是 可垂直滚动 我正在尝试放置一个textview在之上Imageview 两个视图都必须可见 是否可以 如果是 如何以编程方式执行 我需要做出哪些改变 list view item
  • 发送 HTTP 标头后,服务器无法修改 cookie

    我正在用 C 创建一个 Web 应用程序 当我的页面加载时 我会触发一个异步线程来处理一些数据 此处理的一部分是更新 cookie 但是 当我将 cookie 保存到响应中时 System Web HttpContext Current R
  • 将单列拆分为四列并计算 R 中的重复模式

    该项目的目的是了解在观察物体时如何获取信息 想象一个对象有这样的元素a b c d e and f 一个人可能会看a并移至b等等 现在 我们希望绘制并了解该人如何浏览给定刺激的不同元素 我有在单列中捕获此运动的数据 但我需要将其分成几列才能
  • SQL随机数不起作用

    declare fieldForceCounter as int declare SaleDate as dateTime declare RandomNoSeed as decimal set fieldForceCounter 1 se
  • 如何从 .csv 文件读取字符串并拆分它?

    我有一个 csv 文件 我必须从中读取一个字符串并将其拆分为子字符串 例如 s1 s2 s3 然后我必须把它分成s1 s2 s3 根据 进行拆分 好吧 尝试以下 beanshell java 代码将提取的 subjects string 变
  • 从字节数组创建 IMFByteStream

    我正在尝试采用一种方法 该方法最初从 Microsoft 的 MediaFoundation 音频播放示例中获取 URL 改为从 const char 数组中获取源 问题是 CreateObjectFromByteStream 需要 IMF
  • 使用 Python 访问已经运行的进程

    问题 有没有一种方法 使用Python 访问正在运行的标准输出process 这个过程有not由Python启动 Context 有一个程序叫玛雅巴奇 从 3D Maya 场景文件渲染图像 如果我从命令行运行该程序 我会看到来自的进度消息玛
  • 拨打 tcp 127.0.0.1:5000: 连接:连接被拒绝

    我托管了一个 Flask Web 应用程序 当我尝试从 Firefox 浏览器打开它时 它显示 拨打 TCP 127 0 0 1 5000 连接 连接被拒绝 但是当我尝试在 Chrome 中打开 URI 时 它工作正常 可能的原因是什么 您
  • UICollectionView - 具有 pinterest 样式布局的自动布局

    我目前正在尝试构建 pinterest 样式布局 同时使用自动布局具有动态高度 试图远离手动计算单元格高度 我目前的目标是 iOS 9 及更高版本 我见过关于如何使用特定于每个索引的计算进行动态布局和 pinterest 布局的精彩示例 但
  • 如何处置我的 Excel 应用程序

    我的代码如下 Excel Application xlApp new Excel Application Excel Workbook xlWorkbook xlApp Workbooks Open file Excel Worksheet