jjzjj

C# ITypeInfo.GetContainingTypeLib 在传递 VBA 类的实时实例时失败

所以我尝试在VBA类实例上调用ITypeInfo,虽然它看起来很有希望,但我想看看我是否可以获得对其包含项目的引用,类似于类型库。我认为ITypeInfo.GetContainingTypeLib可能有用,但它会抛出一个异常,表明VBA不会合作。有人知道VBA如何以不同于标准COM规范的方式做事吗?C#类库代码在这里。注册COM互操作并在AssemblyInfo.cs中设置COMVisible(true)以使其可从VBA访问。下面给出了VBA客户端代码。usingSystem;usingSystem.Runtime.InteropServices;usingSystem.Runtime

c# - 同时使用 VBA 和 ActiveX 插件时出现 Excel 错误 406。

我的Excel插件(XLLAddIn,称之为MyAddIn)是用C#、ExcelDNA、NetOffice、VS2010构建的。客户端有另一个插件(我们称它为B),我猜它是用VBA编写的。客户说B在没有MyAddIn的情况下工作正常。安装MyAddIn后,B失败并出现错误:Errorcode:406Errormessage:Non-modalformscannotbedisplayedinthishostapplicationfromanActiveXDLL,ActiveXControl,orPropertyPage.我确实看到了thisMicrosoftresource,但我不想只告

c# - 在 Excel 2003 中调整编辑栏的大小

我已经创建了一个VSTO应用程序并正在寻找可以设置公式栏高度的东西。此选项可用于Excel2007,但我找不到任何此类属性可以帮助我解决2003版excel的问题。如有任何帮助,我们将不胜感激。 最佳答案 Application.FormulaBarHeight属性是在Excel2007中添加的,在早期版本中不可用。 关于c#-在Excel2003中调整编辑栏的大小,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

c# - 使用 DataTable 和 Linq 导出到 Excel 时缺少某些数据

我在单个XL文件中导出三个工作表,但我在第二个DataTable(EducationDetails表)和第三个DataTable中缺少一些用户数据(员工详细信息表)。EducationDetails表是一些用户不存在的,但是用户显示的是EmployeementDetails表。用户电子邮件ID在所有三个数据库表中。DataSeds=newDataSet();DataTabledt=newDataTable("RegistrationDetails");DataTabledt1=newDataTable("EducationDetails");DataTabledt2=newDataTa

c# - 任何用于处理 Excel(*.xls 和 *.xlsx)文件的开源/免费库?

这个问题在这里已经有了答案:HowdoIcreateanExcel(.XLSand.XLSX)fileinC#withoutinstallingMicrosoftOffice?(47个回答)关闭9年前。我知道一些用于处理Excel文件的开源库,但这些仅适用于*.xls或*.xlsx,例如NPOI适用于*.xls,EPPlus和ClosedXML适用于*.xlsx。由于性能问题,我不想使用MicrosoftExcelAutomation。您能否向我推荐一些满足此目的的开源或免费库(同时处理*.xls和*.xlsx)。

c# - 如何强制 ADO.Net 在阅读器 TableSchema 中仅使用 System.String 数据类型

我正在使用OleDbConnection查询Excel2007电子表格。我想强制OleDbDataReader仅使用字符串作为列数据类型。系统正在查看前8行数据并将数据类型推断为Double。问题是,在第9行,我在该列中有一个字符串,并且OleDbDataReader正在返回Null值,因为它无法转换为Double。我使用了这些连接字符串:Provider=Microsoft.ACE.OLEDB.12.0;DataSource="ExcelFile.xlsx";PersistSecurityInfo=False;ExtendedProperties="Excel12.0;IMEX=1;

c# - HRESULT 异常 : 0x8002000B (DISP_E_BADINDEX) for System. Runtime.InteropServices.COMException

我有一部分代码试图将数据(从数据库)导出到Excel。当我尝试执行此任务时,它会生成此错误:System.Runtime.InteropServices.COMExceptionoccurredAdditionalinformation:Invalidindex.(ExceptionfromHRESULT:0x8002000B(DISP_E_BADINDEX))产生此错误的代码:stringExcelFileName=RootFolder+"\\"+"Work_Sheet.xls";File.Copy(RootFolder+"\\"+"WorksOrder_Template.xls",

c# - 如何从 ASP.NET Core Web API web-app 返回 Excel 文件?

在类似的问题中,使用此代码可以下载PDF:I'mtestingwithlocalfiles(.xlsx,.pdf,.zip)insidetheControllerfolder.SimilarQuestionHere[HttpGet("downloadPDF")]publicFileResultTestDownloadPCF(){HttpContext.Response.ContentType="application/pdf";FileContentResultresult=newFileContentResult(System.IO.File.ReadAllBytes("Contro

c# - 如何使用进程 ID 获取 Excel 实例或 Excel 实例 CLSID?

我正在使用C#,我需要通过进程ID获取特定的excel实例;我从另一个应用程序获得了我需要的实例的进程ID,但我不知道还能做什么,我不知道如何根据他的进程ID获得正在运行的excel实例。我在网上做了很多研究,但我只看到使用Marshal.GetActiveObject(...)或Marshal.BindToMoniker(...)的示例,我无法使用,因为第一个返回在ROT中注册的第一个Excel实例并不完全是我需要的实例,第二个实例要求您在尝试获取实例之前保存excel文件。另外,如果我在哪里能够使用进程ID获取我需要的excel实例的CLSID,那么我可以调用GetActiveOb

c# - Excel 2013 崩溃

我正在尝试将Excel2013嵌入到WPF应用程序中。问题是,当我在以下代码中调用SetWindowLongPtr时,Excel2013会立即崩溃。我挖了一下,发现如果我注释掉WS.CHILD样式,它工作正常,但是Excel工作表变成只读的,这不是我想要的。相同的代码适用于Excel2010。Excel.Application_excelApp;IntPtr_wrappedApplicationHandle;Int64lngStyle;Int64lExStyle;privatevoidButton_Click_1(objectsender,RoutedEventArgse){_exce