Tag: 互操作

通过互操作的Excel中的网格线

任何想法的设置是隐藏的closures使用从互操作的Excel 2003的网格线?

如何快速读取C#中的Excel电子表格

我正在使用Microsoft.Office.Interop.Excel来读取在内存中打开的电子表格。 gXlWs = (Microsoft.Office.Interop.Excel.Worksheet)gXlApp.ActiveWorkbook.ActiveSheet; int NumCols = 7; string[] Fields = new string[NumCols]; string input = null; int NumRow = 2; while (Convert.ToString(((Microsoft.Office.Interop.Excel.Range)gXlWs.Cells[NumRow, 1]).Value2) != null) { for (int c = 1; c <= NumCols; c++) { Fields[c-1] = Convert.ToString(((Microsoft.Office.Interop.Excel.Range)gXlWs.Cells[NumRow, c]).Value2); } NumRow++; //Do my other processing } 我有18万行,结果很慢。 我不确定“转换”是否有效。 无论如何,我能做得更快吗? 月亮

使用Interop C#保存Excel电子表格

static void Main() { Application excelapp = new Application(); Workbook book = excelapp.Workbooks.Open(@"C:\HWYFAB.xlsx", 0, false, 5, "", "", false, XlPlatform.xlWindows , "", true, false, 0, true, false, false); Worksheet sheet = (Worksheet)book.Sheets[1]; Range cell = (Range)sheet.Cells[3, 2]; Console.WriteLine(cell.Text); cell.ClearContents(); book.Close(true, "HWYFAB.xlsx", false); excelapp.Quit(); } 该程序按预期运行并退出。 它将单元格B3中的正确值打印到控制台。 closures时询问是否要replace现有的文件。 我点击是。 当我在Excel中打开电子表格时,尽pipe有cell.ClearContents(),但值仍位于单元格B3中。 有什么想法吗?

Excel互操作MissingMethodException

在我的C#程序中,我正在使用Excel 2010 interop程序集。 有了这个我正在读写数据,以Excel文件。 并在开发框(包含Office 2010)上执行得很好。 在客户端计算机上,即使他们具有Office 2010和Office PIA,也会看到下面的exception情况,并引发WriteToExcel()方法调用。 Unhandled Exception: System.MissingMethodException: Method not found: 'System.Type System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.GUID)'. 以下是我的代码片段。 [STAThread] static void Main(string[] args){ // read user input, process and write data to Excel WriteToExcel(); } [STAThread] static void WriteToExcel(){ Application xlsApplication = new Application(); Workbook xlsWorkbook = xlsApplication.Workbooks.Open(excelFilePath); // write data to excel // close […]

如何使用Interop加载Excel Addin

我有一个AddIn,我想从C#winforms应用程序通过Excel互操作调用。 我不能得到加载等加载,除非我每次卸载和树脂安装(这是在Excel中使用互操作时无法加载插件,无法让他们的例子在C#中工作)。 不幸的是,这对用户来说太慢而烦人,所以我需要简化它。 我想有一个Excel的实例,但加载已经安装的插件,而不强制这个安装/重新安装问题。 我search和search,但我发现在谷歌上提供的解决scheme,安装/重新安装。 有没有其他的方法? 加载项已安装,我只是想要加载它。 这是我现在正在做的(从google'dbuild议中获取): // loop over the add-ins and if you find it uninstall it. foreach (AddIn addIn in excel.AddIns) if (addIn.Name.Contains("My Addin")) addin.Installed = false; // install the addin var addin = excel.AddIns.Add("my_addin.xll", false); addin.Installed = true;

Excel中的工作表和表格之间的区别

在excel COM interop(C#)中,有什么区别: _sheet = (Excel._Worksheet)_wb.Worksheets["SheetName"]; 和 _sheet = (Excel._Worksheet)_wb.Sheets["SheetName"]; ?

什么架构来解决这个SystemOutOfMemoryException,同时允许我实例化一个工作表的单元格?

概要 这个问题是后续build设一个简单的电子表格API的愿望,同时保持对那些谁了解Excel的用户友好。 总结起来,这个问题与以下两点有关: 1. 如何从索引中实现列自我命名? ; 2. 如何使这个自定义工作表初始化更快? 。 目的 提供一个简化的Excel API,用作包含Application , Workbook , Worksheet和Range类/接口等内核组件的封装,同时仅公开每个对象的最常用对象属性。 用法示例 这个用法的例子是从unit testing中得到灵感的,这个unit testing使我能够把这个解决scheme提升到现在的地位。 Dim file as String = "C:\Temp\WriteTest.xls" Using mgr As ISpreadsheetManager = New SpreadsheetManager() Dim wb as IWorkbook = mgr.CreateWorkbook() wb.Sheets("Sheet1").Cells("A1").Value = 3.1415926 wb.SaveAs(file) End Using 现在我们打开它: Dim file as String = "C:\Temp\WriteTest.xls" Using mgr As […]

C#Excel Interop:Excel过程保留在内存中,直到父窗体closures

以我的forms,我正在做一些简单的事情 private void btnPrintPickList_Click(object sender, EventArgs e) { using (var salesRpt = new SalesOrder(CurrentItem())) { salesRpt.CreateSpreadSheet(); salesRpt.Dispose(); } } 我已经遵循了“优秀互操作规范”。 protected ExcelSheet(bool documentVisible, XlPageOrientation orientation) { ExcelApplication = new Application {Visible = documentVisible}; WorkBooks = ExcelApplication.Workbooks; WorkBook = WorkBooks.Add(XlSheetType.xlWorksheet); SheetList = WorkBook.Worksheets; Orientation = orientation; WorkSheet = (Worksheet) ExcelApplication.ActiveSheet; } public Application ExcelApplication { get; […]

Excel进程不会在VB.net中closures

我正在使用interop.excel创build一个excel文件,并且这个过程没有closures。 这是我正在尝试使用的代码。 Private Sub converToExcel(fileLoc As String, ds As DataSet) Dim xlApp As Excel.Application Dim xlWorkBook As Excel.Workbook Dim xlWorkBooks As Excel.Workbooks Dim xlWorkSheet As Excel.Worksheet Dim misValue As Object = System.Reflection.Missing.Value Dim i As Integer Dim j As Integer xlApp = New Excel.Application xlWorkBooks = xlApp.Workbooks xlWorkBook = xlWorkBooks.Add(misValue) xlWorkSheet = xlWorkBook.Sheets("sheet1") For i […]

什么是Excel 97-2003正确的`XlFileFormat`枚举

关于Excel VBA Interop,用于保存Excel 97-2003电子表格的正确的XlFileFormat枚举是什么? 官方的MSDN文档是在这里,但我不明白从这个正确的select是什么。 谢谢