无法从VB.NET应用程序中关闭Excel进程
我创建了下面的类,以打开并收集Excel文件中的工作表名称.它在打开文件并返回每个单独工作表的名称时应该做到的.不幸的是,我无法关闭文件.这使Excel.exe过程悬挂.即使我试图在此类底部关闭它,该过程仍然悬挂.我必须手动掌握Windows任务管理器并杀死该过程,然后才能再次使用该文件.即使我退出应用程序,它仍然存在.关于如何从代码中杀死此过程的任何建议? Imports Excel = Microsoft.Office.Interop.Excel Public Class ExcelWrapper Dim strTypeSelection As String = String.Empty Dim strFilePath As String = String.Empty Function GetWorksheetsByName(ByVal strfilePath As String) As Array Dim xlsApp As Excel.Application
0 2023-12-09
编程技术问答社区
错误:800700C1在实例化microsoft.office.interop.excel.application的对象中
我在实例化microsoft.office.interop.excel.application()以从Winforms应用程序生成Excel时会遇到以下错误. 这是以前工作的,尽管没有代码和Excel版本的更改,但它停止了工作事件.我能看到的唯一更改是在过去几周内安装了一些Windows 10更新,但我不确定这是否是问题的原因 通过CLSID检索组件的COM类工厂{00024500-0000-0000-0000-C000-0000000046}由于以下错误:800700C1. 我可以看到许多用于访问的解决方案(错误:80070005访问被拒绝),但没有错误:800700C1. 我正在以32位运行该应用程序,并且我重新安装了Office 2016(32位)套件,但我仍然会遇到错误. 在解决方向方向的任何帮助都会有所帮助. 解决方案 删除文件" C:\ Program"已解决了问题.不知道该文件是如何创建的以及为什么删除其解决了Excel生成问题.
0 2023-12-09
编程技术问答社区
如何在c# winforms中复制excel工作表到另一个excel工作簿而不打开excel文件?
在C#Windows应用程序中, 我有许多Excel工作簿,我想要的是将工作表从Excel工作簿复制到单个工作簿. 这是可能的,但是我必须打开Excel工作簿才能做到. Excel.Application app = new Excel.Application(); app.Visible = true; app.WindowState = XlWindowState.xlMinimized; app.Workbooks.Add(""); app.Workbooks.Add(@"Path\WorkBook1.xlsx"); app.Workbooks.Add(@"Path\WorkBook2.xlsx"); for (int i = 2; i
0 2023-12-09
编程技术问答社区
在C#中使用Process.Start打开一个Excel文件
我正在尝试使用按钮单击打开Excel文件.由于某种原因,它不起作用.我尝试了几件事.有什么想法为什么它们不起作用? 方法1我尝试过.这将打开文件管理器,但没有打开适当的文件.它肯定正在使用文件的正确路径,并且文件确实存在 private string fileCopy; public RepairResultsControl() { InitializeComponent(); } public void Show(PSRepair.AnalysisResults analysis, string pathNameCopy) { fileCopy = pathNameCopy; Show(); } private void btnGoToFile_Click(object sender, EventArgs e) { Process.Start("explorer.exe", "/select,"+ fileCopy); } 方法2.
0 2023-12-09
编程技术问答社区
自动完成的组合框 C#
我正在加载来自Excel(约2000个项目)的巨大数据库,以组合BOMBOBOX.例如CD标题.然后我从2000年中选择1个CD标题.我想在这里使用自动完成,但我不知道如何. // Loading items from Excel for (rCnt = 2; rCnt
0 2023-12-09
编程技术问答社区
用OLEDB读取EXCEL时不能显示正确的数值
这是我发布的旧问题: 用C# 按建议我创建了schema.ini文件.我的Excel文件具有混合数据的许多列(其中许多未固定).即使是单元格也包含文本.我观察到,当我使用OLEDB读取Excel并填充到数据表中时,并非所有值都会显示出来. 我不能假设所有列都将它们放入.ini文件中.我的Excel中的列将上升到" DX".我观察到只显示了具有数字+文本值的第一行,但并未显示在某个地方出现的类似文本.显示为空白. 这是连接字符串: 字符串strconn =" provider = microsoft.ace.oledb.12.0; data source ='" + filepath +"'; extended properties = \" excel 12.0; hddr = yes; imex; imex = 1; typeguessrows; \""; 是否有任何解决方案,因此它读取所有类型的数据? 解决方案 这出现了很多,这是可以理解的
0 2023-12-09
编程技术问答社区
如何打开带有只读保护的Excel文件?
我在我的C#Winform应用程序中打开了Excel文件,并使用DSO Framer控件添加了引用.但是我想使用仅读取保护打开我的excel文件. Word.Document wordDoc = (Word.Document)axFramerControl1.ActiveDocument; Word.Application wordApp = wordDoc.Application; wordDoc.Protect(Word.WdProtectionType.wdAllowOnlyReading); 在同时我想为Excel做这项工作.但是我无法以这种方式保护Excel文件. string path = "C:\\test-wb.xlsx"; axFramerControl1.Open(path, true,"excel.sheet", "", ""); Excel._Workbook excelDoc =(Microsoft.Office.Interop.Excel._
0 2023-12-09
编程技术问答社区
如何在Excel操作窗格中使用WPF控件?
那里有几种资源来解释如何添加 winforms 控件为Excel.看到这两个: 他们俩都提到了使用 WPF控件(我需要的一个)的最新选择.不幸的是,这两个资源都缺乏基本部分.有一个缺少的链接: (1)Microsoft网站提到了一些视频 - 与我的要求相匹配的确切标题 - 但是该网站中的所有视频都已删除. (2)透明线网站包含一个出色的,分步的项目,但las,当提到关键部分时,作者使用某些设施(工具箱的WPF互操作性部分")存在于VS-2010+ 中 基于上面的屏幕截图和其他站点,我得出的结论是,缺少链接,我的WPF UserControl及其在Excel中的外观之间的连接是一些ElementHost. @highcore的附录.请参阅下面的工具箱: 解决方案 尊敬的自我: 您的问题是您正在尝试放置 wpf控制 您需要创建一个老式的 Winform Control ,接下来,您可以使用此处所示的工具箱: 请注意,部分 Element
0 2023-12-09
编程技术问答社区
Excel程序未关闭
我有这个C#程序从未关闭Excel过程.基本上,它发现字符串在Excel中出现的实例数.我尝试了各种各样的事情,但是它不起作用.有一种称为此方法的表格,但这不应该改变为什么该过程未关闭的原因.我看过汉斯·帕斯特(Hans Passant)的建议,但没有人在起作用. 编辑:我尝试了提到的事情,但它仍然不会关闭.这是我更新的代码. 编辑:尝试了整个process.kill(),并且它有效,但似乎有点像应该有效的东西. public class CompareHelper { // Define Variables Excel.Application excelApp = null; Excel.Workbooks wkbks = null; Excel.Workbook wkbk = null; Excel.Worksheet wksht = null; Dictionary map = new Dicti
0 2023-12-09
编程技术问答社区
将excel数据粘贴到一个空白的DataGridView中-索引超出范围异常
我有一个Excel表,其中包括以下内容: 所以,我要实现的目标是将其从excel复制并粘贴到空白DataGridView视图中. 这是我到目前为止的代码: private void PasteClipboard(DataGridView myDataGridView) { DataObject o = (DataObject)Clipboard.GetDataObject(); if (o.GetDataPresent(DataFormats.Text)) { string[] pastedRows = Regex.Split(o.GetData(DataFormats.Text).ToString().TrimEnd("\r\n".ToCharArray()), "\r\n"); foreach (string pastedRow in pastedRows) { stri
0 2023-12-09
编程技术问答社区
旧格式或无效的类型库。(HRESULT的异常:0x80028018 (TYPE_E_INVDATAREAD))
将数据在DataGrid视图中导出到Excel表格时出现错误: 错误(旧格式或无效类型库. 在这条线上: Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing); 如何解决此问题? 我的完整代码: private void button1_Click(object sender, EventArgs e) { System.Globalization.CultureInfo oldCI = System.Threading.Thread.CurrentThread.CurrentCulture; System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); // Creating E
0 2023-12-09
编程技术问答社区
当使用SetParent()时,有问题定位窗口
我尝试使用pinvoke使用setparent api将childForm作为主excel窗口的孩子: Form childForm = new MyForm(); IntPtr excelHandle = (IntPtr) excelApplication.Hwnd; SetParent(childForm.Handle, excelHandle); childForm.StartPosition = FormStartPosition.Manual; childForm.Left = 0; childForm.Top = 0; 如上所述,我的目的是将孩子放在Excel窗口的左上角.但是,由于某种原因,childForm总是在某个怪异的位置. 我做错了什么? 解决方案 虽然这里的所有答案都提出了完美的逻辑方法,但它们都不适合我.然后我尝试了MoveWindow.由于某种原因,我不明白,这项工作. 这是代码: [DllImport("user32.dl
0 2023-12-09
编程技术问答社区
Excel互操作防止显示密码对话框
我正在编写一个程序来清除空排和列的excel文件,我是从自己的问题开始的使用InterOp 从Excel文件中删除空行和列的最快方法一切都很好. 问题是我要 desk excel在密码保护工作簿时显示"密码"对话框,而不是例外.. 我使用以下代码使用Interop打开Excel文件: m_XlApp = New Excel.Application m_XlApp.visible = False m_XlApp.DisplayAlerts = False Dim m_xlWrkbs As Excel.Workbooks = m_XlApp.Workbooks Dim m_xlWrkb As Excel.Workbook m_xlWrkb = m_xlWrkbs.Open(strFile) m_xlWrkb.DoNotPromptForConvert = true 我试图通过一些建议的链接 传递空密码 m_xlWrkb = m_
0 2023-12-09
编程技术问答社区
比较两个excel文件的差异
我想比较两个输入CSV文件,以查看是否添加或删除了行.最好的方法是什么?我不使用列名,因为列的名称对于所有文件都不一致. private void compare_btn_Click(object sender, EventArgs e) { string firstFile = firstExcel_txt.Text; var results = ReadExcel(openFileDialog1); string secondFile = secondExcel_txt.Text; var results2 = ReadExcel(openFileDialog2); } 阅读: public object ReadExcel(OpenFileDialog openFileDialog) { var _
0 2023-12-09
编程技术问答社区
如何以编程方式检查电脑上是否存在MS Excel?
我有一个需要MS Excel运行的应用程序,否则它会崩溃.因此,我想检查并警告用户,以防Excel未安装在用户的计算机上. 我该怎么做? 解决方案 Type officeType = Type.GetTypeFromProgID("Excel.Application"); if (officeType == null) { //no Excel installed } else { //Excel installed } 其他解决方案 作为快速修复,您可以捕获异常并实现正确的错误处理.然后,您可以通知用户. 其他解决方案 const string ASSEMBLY2003 = "Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"; static bool IsAssemblyInstall
0 2023-12-09
编程技术问答社区
c# (WinForms-App)导出数据集到Excel
我需要一个解决方案将数据集导出到没有任何ASP代码的Excel文件(httpresonpsne ...),但我没有找到一个很好的例子来执行此操作... 最好先感谢 解决方案 我已经创建了一个将A DataGridView或DataTable导出到Excel文件的类.您可能可以更改它以使其使用DataSet而不是(通过其中的DataTables迭代).它还进行一些基本格式,您也可以扩展. 要使用它,只需致电ExceLexport,并指定文件名以及导出后是否自动打开文件.我也可以使它们成为扩展方法,但我没有.随意. 请注意,Excel文件可以作为荣耀的XML文档保存,这是利用它的. 编辑:它用于使用香草StreamWriter,但是正如指出的那样,在许多情况下,事情不会正确逃脱.现在使用XmlWriter,它将为您逃脱. ExcelWriter类包装XmlWriter.我没有打扰,但是您可能想进行更多错误检查以确保在开始行之前不能写单元数据,等等.代码在
0 2023-12-09
编程技术问答社区
Excel CustomTaskPane with WebBrowser control-keyboard/focus问题
我有这个确切的问题 https://social.msdn.microsoft.com/forums/forums/vstudio/en-us/e417e686-032c-432c-432c--432c--432c--4322c--4388-fefefefefefefefef6666666666666666666666666666666cd/fastertaskpane-with-webbrowser-control-keyboardfocus-issues?umboy = vsto 也在这里提到 https://connect.microsoft.com/visalstudio/feedback/feedback/details/521465/521465/521465/ 我正在使用Visual Studio Professional 2013编写Excel 2010插件.我已经使用System.windows.forms.forms.webbrowser Child创建了
0 2023-12-09
编程技术问答社区
OpenFileDialog不能加载CSV文件,但可以加载xls/xlsx Excel文件
在我的Windows表单应用程序中加载Excel文件时,我可以加载.xls和.xlsx格式,但是当我选择.CSV时,我会收到以下错误: system.nullReferenceException:"对象引用未设置为对象的实例." sconnectionstring为null. 错误发生在线上: if (sConnectionString.Length > 0) 来自代码的完整部分: public string sConnectionString; public void FillData() { if (sConnectionString.Length > 0) { OleDbConnection cn = new OleDbConnection(sConnectionString); { cn.Open(); DataTable dt = new DataTabl
0 2023-12-09
编程技术问答社区
Excel编程。来自HRESULT的异常:0x800A03EC.at Microsoft.office.Interop
我创建了一个小型应用程序,可以打开,读取和创建Excel文件. 该应用程序是用C#编写的,我不知道为什么当应用程序在一台计算机中运行时我会收到此错误消息. 我在计算机上运行了相同的申请,但没有任何问题. 有人可以帮助我,让我知道为什么会发生这个错误? 谢谢 解决方案 首先,我怀疑hresult实际上是0x800A03EC(如果您在谈论错误代码,可以传达确切的数字很重要; - ). ). 这个错误通常意味着一个或多个公式包含错误.在一台计算机上而不是在另一台机器上使用公式的主要原因通常是"语言环境":检查该机器是否具有数字,日期和/或货币(逗号V.S. SECE等)的格式设置不同. 其他解决方案 另一个原因可能是我的 - 太早了; Excel有局限性(http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-h-limits-hp005199291.aspx)
0 2023-12-09
编程技术问答社区
我可以在用Excel VBA编写的应用程序中使用RegFree Com吗?
我有一个用excel vba,myapp.xls编写的应用程序.当前,我们使用installShield分发应用程序.由于我们正在移至Windows Vista,因此我需要能够以标准用户的身份安装该应用程序.这不允许我在安装过程中更新注册表.除Excel应用程序外,我们还提供了几个VB6应用程序.为了安装这些应用程序,我能够使用Regfree com,并按照这个论坛上的人们建议制作我的清单(MMM)(我非常感谢Insight BTW!).这个过程虽然有些乏味,但效果很好.然后,我在VS '05安装程序项目中打包了MMM的输出,并使用msiinfo.exe删除了MSI上的UAC提示.现在,我面对安装基本上生活在Excel文件中的应用程序.我修改了MMM为我为我的VB6应用之一创建的清单,并试图通过该应用程序运行Excel文件,但我没有很多运气.有人知道这样做的方法吗? Regfree Com是否与VBA合作?任何想法或建议将不胜感激. 谢谢, 史蒂夫 解决方案 是的,可
0 2023-12-09
编程技术问答社区