Tag: 办公自动化

强制COM服务器保持打开状态

我有一个由VB6 EXE托pipe的COM自动化服务器 。 COM VBA使用Excel VBA : Dim o as MyCOMAPI.MyCOMType Set o = new MyCOMAPI.MyCOMType o.DoSomething 当我在VBA中创build对象时,exe随着COM自动化一起启动,VBA可以使用API​​。 但是EXE很快就被Excelclosures了,我猜测Excel什么时候决定不再需要COM API了。 此行为导致随机错误。 简单的解决scheme是在运行VBA代码之前启动exe; 在这种情况下,所有工作正常,因为exe将不会停止运行,直到用户closures。 你有一些关于Excel VBApipe理托pipeAPI调用方式的信息/文档吗? 有没有办法避免这种行为,并保持exe文件保持打开,直到VBA代码决定停止它?

Excel自动化插件 – function不起作用

编辑:我想要做的真正的解决scheme可以在这里find这个职位。 我只是想公开一些编译好的函数。 使用Excel DNA nuget软件包certificate这非常简单。 您只需添加一个类库,添加nuget包,并复制粘贴在自述文件中find的代码。 单击F5,它将启动加载项已加载的Excel。 如果你想让你的函数保持持久性,只需要通过“开发人员”function区部分手动将加载项添加到excel文件。 原文:我正在按照这篇微软文章的说明来介绍如何创build一个自动化加载项。 代码编译得很好,我可以从Excel中访问函数。 但是这些function不起作用。 当我尝试给一个单元格分配一个函数调用的结果时,我几乎总是得到#value或#ref错误。 更具体: 以下由Microsoft提供的function不起作用。 它显示了我尝试使用它的单元格中的#value错误。 我select使用鼠标随机单元格范围作为函数的参数。 Public Function NumberOfCells(ByVal range As Object) As Double Dim r As Excel.Range = TryCast(range, Excel.Range) Return CDbl(r.get_Cells.get_Count) End Function 下面的函数,我创build不起作用。 我得到#ref错误。 我通过传递直接整数(Add1(1,2))或包含数字的单元格来调用它。 Public Function Add1(ByVal i1 As Integer, ByVal i2 As Integer) As Integer return i1+i2 End Function 下面我创build的函数(?!?): […]

IIS无法访问用户的Excel文件,但对我来说可以。 为什么?

我有一个程序在Windows Server 2008 R2的IIS中作为服务运行。 该程序没有问题在Excel中创build报告。 当它尝试访问它刚创build的Excel时,就会出现问题。 这给用户在这行代码80070005错误: Excel.Application excelSS = null; excelSS = new Excel.Application(); <– Error 因为在那个时候,程序还没有尝试访问Excel文件,我相信这个问题与文件的访问权限不足有关。 我相信这个问题可能与查找Excel程序有关。 这可能与Excel是32位而Windows操作系统是64位有关。 我不确定。 奇怪的是我没有问题通过IIS查看Excel报告。 另一个IT人员也没有这个问题。 但普通用户都有这个问题,试图做同样的事情。 这一切都表明这个问题与“访问权”有关的可能性很高。 如果它与Excel的设置有关,我会假定包括我在内的每个人都会遇到同样的问题。 这很令人费解。 我已经尝试了在互联网上可以find的所有提示: 确认IIS中的应用程序池使用IIS APPPOOL \ DefaultAppPool用户帐户。 在system32和SysWOW64下的config \ systemprofile下添加一个“Desktop”文件夹,并确保IIS APPPOOL \ DefaultAppPool用户帐户对这些文件夹具有读/写权限。 运行DCOM-Config,并将本地访问/启动/激活权限分配给COM-Security下的IIS APPPOOL \ DefaultAppPool。 并确保32位和64位DCOM-Config获得这些设置。 由于用户使用“Windows身份validation”在IIS中运行程序,我还确保用户可以使用自己的用户帐户访问存储Excel文件的IIS服务器中的文件夹。 我什至去添加IIS APPPOOL \ DefaultAppPool到本地pipe理员用户组。 我不能尝试的唯一提示是,我无法findDCOM-Config程序(组件服务 – >计算机 – >我的电脑 – > […]

exceljoin保存内部数据?

我是新来的编写excel加载项(在C#中),并试图找出正确的方式来保存一些内部数据结构,所以我可以在下次打开文件时恢复状态。 如果使事情变得更容易,我可以用xml或base64string转换数据。 我不想维护一个单独的文件,并想在Excel工作表中embedded此信息。 非常感谢您的帮助。

使工作簿可见

我有以下代码: Dim DumpXlApp As Excel.Application = New Excel.Application Dim DumpWkBk As Excel.Workbook DumpWkBk = System.Runtime.InteropServices.Marshal.BindToMoniker(FilePath) DumpXlApp = DumpWkBk.Parent DumpXlApp.Visible = True 我不能让DumpWkBk工作簿变得可见。 问题DumpXlApp = DumpWkBk.Parent行吗? 我不认为这是BindToMoniker行,因为我可以用DumpWkBk做些事情。

什么是需要通过API将文件保存为PDF的Excel 2007中的PDF文件types编号?

我需要调用一个函数来保存Excel工作簿。 我安装了Excel 2007的PDF保存插件,但是现在我需要知道保存Excel文件时文件格式的数字代码是什么。 excel文件格式编号的例子可以在这里find。 SaveAs in Excel 2007 FileExtStr = ".xlsb": FileFormatNum = 50 FileExtStr = ".xlsx": FileFormatNum = 51 FileExtStr = ".xlsm": FileFormatNum = 52 FileExtStr = ".xls": FileFormatNum = 56 FileExtStr = ".csv": FileFormatNum = 6 FileExtStr = ".txt": FileFormatNum = -4158 FileExtStr = ".prn": FileFormatNum = 36 我需要一个.pdf结尾。

使用Powershell将Excel工作表从一个工作簿复制到另一个工作簿

我想将工作表从一个工作簿复制(或移动)到Powershell的另一个工作簿。 我曾经这样做过,不记得如何。 我想我使用CopyTo()函数。 刚刚开始。 $missing = [System.Type]::missing $excel = New-Object -Com Excel.Application $wb1 = $excel.Workbooks.Add($missing) $wb2 = $excel.Workbooks.Add($missing) # Now, to copy worksheet "Sheet3" from $wb2 into $wb1 as second worksheet. # How?

找不到Microsoft.Office.Interop.Excel,请帮助我

在我的C#程序中,我尝试使用Wrtie的东西来突出。 我在网上find一个方法,使用Microsoft.Office.Interop.Excel类。 但是当我使用Microsoft.Office.Interop.Excel时,它表示没有findInterop类。 我的项目中已经有Microsoft Office 12.0 Object Library参考

VB6 / VBA不允许加载COM加载项

我有一个VB6 / VBA应用程序挂钩到Excel并加载工作簿。 它已经工作了很多年了。 我们现在升级到Excel 2010,并遇到了一些问题。 在排除故障后,似乎如果closuresPowerPivot COM加载项,则可以像以前一样运行该程序,而不会出现问题。 当我寻找这个的确切原因,我想看看我是否可以closures只是为我的应用程序的加载项。 我像这样加载Excel: Set xlApp = CreateObject("Excel.Application") xlApp.Visible = False 在testingExcel工作簿,我有这个代码来列出加载项。 但是只有“Excel加载项”是唯一被列出的。 “COM加载项”不列出。 Sub ListAddIns() Dim CurrAddin As Excel.AddIn Dim r As Long Dim ws As Excel.Worksheet Set ws = ActiveSheet Cells.Select Selection.ClearContents Range("A1").Select r = 1 For Each CurrAddin In Excel.Application.AddIns ws.Cells(r, 1).Value = CurrAddin.FullName ws.Cells(r, 2).Value […]

使用C#在Powerpoint 2013中创build多个系列图表

我正在使用VS2013 Ultimate,Office 2013(PowerPoint,Excel和Word都已安装)。 我在C#编码。 我正在使用C#创buildPowerPoint演示文稿。 到目前为止,我已经设法完成了我想要做的一切。 不过,我在尝试创build图表时遇到问题。 我的理解是,Excel用于pipe理数据(在工作表中)。 我有以下代码,这将生成PowerPoint幻灯片中两个系列的图表。 问题是“有时”图表不会被添加到幻灯片中。 它被添加,工作表出现,数据被修改,图表从幻灯片中消失! 我也注意到两个Excel实例启动,但我不明白为什么。 任何人都可以摆脱这个光? 谢谢。 public void CreateChart(PPT.Slide slide) { slide.Layout = PPT.PpSlideLayout.ppLayoutBlank; var chart = slide.Shapes.AddChart(XlChartType.xlLine, 10f, 10f, 900f, 400f).Chart; var workbook = (EXCEL.Workbook)chart.ChartData.Workbook; workbook.Windows.Application.Visible = true; var dataSheet = (EXCEL.Worksheet)workbook.Worksheets[1]; dataSheet.Cells.ClearContents(); dataSheet.Cells.Range["A1"].Value2 = "Bananas"; dataSheet.Cells.Range["A2"].Value2 = "Apples"; dataSheet.Cells.Range["A3"].Value2 = "Pears"; dataSheet.Cells.Range["A4"].Value2 = "Oranges"; dataSheet.Cells.Range["B1"].Value2 […]