Tag: 互操作

删除Excel 2007工作簿中的所有QueryTables

使用Excel Interop,我试图遍历所有工作表中的所有QueryTable并删除它们。 我有这个代码,这是有效的: > // loop through each Worksheet > for (int i = 1; i <= workbook.Sheets.Count; i++) > { > sheet = (Worksheet)workbook.Sheets.get_Item(i); > > // loop through each queryTable on each Worksheet > int queryTableCount = sheet.QueryTables.Count; > for (int j = 1; j <= queryTableCount; j++) { > sheet.QueryTables.Item(1).Delete(); > } […]

用CSC编译C#代码 – excel interop

编译我的C#代码与CSC时,我挣扎着以下错误 – “错误CS0234:types或命名空间名称”核心“不会退出命名空间”Microsoft.Office“(您是否缺less程序集)” 在处理这个项目之前,我没有使用面向对象编程的经验。 它涉及通过串行命令自动化一对设备。 参数是从本地Excel文件中读取的,数据写入到代码创build的Excel文件中。 这是什么想法也许有关: 我的编译命令:CSC /r:"C:\Data\Code\Microsoft.Office.Interop.Excel.dll“compiled.cs 我在上面的目录中有文件Microsoft.Office.Interop.Excel.dll。 我从我的电脑上find了安装它的其他文件。 它的date是2007年。 我正在使用Office 2010 我安装了Microsoft Office 2010:主互操作程序集可重新分发,但不能说明做了什么 我从Framework(不是Framework64)修订4.0.30319引用CSC 这是我的代码的标题 使用系统; 使用System.Collections.Generic; 使用System.Linq; 使用System.Text; 使用System.IO.Ports; 使用System.Threading; 使用Microsoft.Office.Core; 使用Excel = Microsoft.Office.Interop.Excel; 使用Microsoft.Office.Interop.Excel; 命名空间ConsoleApplication1 {class Program {static void Main(string [] args) 后续问题(如果我得到这个工作)我需要担心什么事情,使其在另一台计算机上运行? 我的想法是,我需要的是.excel.dll和.exe文件在相同的目录结构? (目前我不知道在目标计算机上运行的.NET或Office版本是什么 – 我猜测至less会是Office 2010) 任何指导将不胜感激。 在过去的一周里,我一直在使用谷歌浏览器 问候,基思

C#COM Excel插件 – 如何添加帮助Fxbutton?

我创build了一个简单的C#COM Excel插件,它公开了一些C#函数。 如何在DLL中添加一个当用户在Excel中按下Fxbutton时将显示的帮助? 即什么function做什么是参数的描述等? 例子:

从Excel单元格导出位图图像

我已经使用OpenXML框架创build了一个.xlsx文件,并将其embeddedPowerPoint幻灯片(也是使用OpenXML创build的),问题是我需要一个OleObject的占位符图像,Excel坐在PowerPoint幻灯片上 – 我可以使用一个标准的占位符,但这看起来很糟糕。 所以我希望(很可能使用Interop)find打开.xlsx文件并将相关单元格导出为位图(理想情况下为.jpg或.png)的方式,然后将其作为占位符图像提供给我的OleObject。 我碰到这个: http : //csharp.net-informations.com/excel/csharp-excel-chart-export.htm 这是做我正在做的事情,但在图表对象,所以如果有人知道一种方式导出单元格(理想情况下select,而不是整个工作表),一个位图,这将是伟大的! 谢谢, 麦克风

Excel interop:工作簿。打开挂起

这是继续我以前的问题( 打开Excel工作簿与VBA代码 – 错误通知VSTO ),这是尚未解决。 Excel Interop有一套新的问题。 即使在excel文件中没有任何错误,我发现workBooks.Open 有时会无限挂起,从而导致我的应用程序永远挂起。 我正在使用下面的代码来初始化Excel对象 public static class InterOpService { private static Application _excel; public static Application Excel { get { try { _excel = (Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); _excel.Visible = true; } catch(Exception ex) { _excel = new Application { Visible = true }; } return _excel; } } } 上面的代码返回一个Excel对象。 它也试图避免创buildExcel对象的多个实例。 […]

使用Interop.Excel从Excel文件中删除下拉框

我需要从Excel表格中删除一个下拉框。 我试着search公式值,删除单元格值,从macros中删除它,没有任何工作。 任何build议,将不胜感激。 客户今天会喜欢这个更新。 谢谢!

Excel Interop加载模板到现有的工作簿中

如何将模板中的工作表加载到现有的Excel工作簿中(如果没有现有工作簿,则先创build一个空白工作簿)。 我努力了 Excel.Application.Workbooks.Open("path"); 这个工程,但每次创build一个新的Excel会话,因为它正在创build一个新的工作簿。 我无法通过Googlefind任何有关如何将数据作为新表加载到现有书籍中的信息。

Excel Interop – 将过滤的工作表复制到不同的Excel实例

假设我有以下Excel Interop对象声明: Dim ExcelToKeepHidden As New Microsoft.Office.Interop.Excel.Application Dim SheetToCopy As Microsoft.Office.Interop.Excel.Workbook … Dim ExcelToShow As New Microsoft.Office.Interop.Excel.Application 基本上,我在后台保存了一个隐藏的Excel实例(其中包含了SheetToCopy – 我将所有基本工作从用户的注意点开始),然后我有一个显示Excel表单的button,当用户点击它时,应该把我的SheetToCopy对象,并将其复制到ExcelToShow应用程序。 换句话说,原始的SheetToCopy保留在ExcelToKeepHidden应用程序中以进行进一步的操作,但ExcelToShow将在用户单击该button时显示该表的副本。 所以,我的挑战是我不能只使用SheetToCopy.Copy()方法,因为新的工作表是在一个完全不同的Excel实例中。 另外,由于我正在操作的操作,我不能复制一个单元格的范围,因为我已经应用了filter,所以pastefunction不允许我保持格式化等。 基本上,我看到的唯一的解决办法是在同一个Excel应用程序中将工作表复制到一个新的工作簿中 ,然后closures它,然后在第二个Excel应用程序中重新打开它,但是我想知道是否有更好的方法来实现这个? 有什么想法吗?? (VB或C#代码非常好) 谢谢!!!!)

如何在VB.net中编辑单元格值 – 使用.Interop.Excel

这是一个简单的问题。 我有这个代码: CurrentRow = 3 MyColumn = 2 CurrentCell = (CurrentRow & "," & MyColumn) WorkingSheet.Cells(CurrentCell).value = (ClientName & " " & "(" & ClientLocation & ")" & " " & ExtraDefinition) 我认为这会把数据放在“工作表”的“B3”位置,但是它把数据放在单元格“AF1”中。 为什么是这样? 谢谢, 玩笑

尝试通过互操作将外部数据添加到Excel文件的例外情况

我试图通过自动化模拟Excel的“数据/从其他来源/从SQL Server”function的行为。 即:生成一个空白的电子表格,启动SQL Server导入向导,保存生成的电子表格,退出。 我logging了一个导入数据的macros。 由此产生的macros观相当简单[释义]: With ActiveSheet.ListObjects.Add(SourceType := blah, Source := Array(blah), Destination := blah ).QueryTable [set a bunch of properties] End With 我写了一个能够成功启动Excel,为A1写“testing”,保存文件并退出Excel的框架程序,所以我知道我很高兴去那里。 当我将ActiveSheet.ListObjects.Add()调用添加到我的程序时,它始终以一个ArgumentExceptionexception的forms出现。 为了比较起见,我添加了一个ListObjects.Add调用来生成一个本地的,而不是外部的表,这是否工作。 Dim lo As Microsoft.Office.Interop.Excel.ListObject 'this works lo = ws.ListObjects.Add(SourceType:=Microsoft.Office.Interop.Excel.XlListObjectSourceType.xlSrcRange, Source:=ws.Range("$A$1"), Destination:=ws.Range("$D$1")) 'this nearly identical code does not lo = ws.ListObjects.Add(SourceType:=Microsoft.Office.Interop.Excel.XlListObjectSourceType.xlSrcExternal, Source:=arrConnectionString, Destination:=ws.Range("$D$1")) arrConnectionString是从macros中逐字拷贝的三元素string数组。 这只是一个长长的普通的连接string,被切成三块: {"OLEDB;Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Data […]