Tag: excel interop

Excel Interop – 保护表格,不包括列

嗨,我想保护一个工作表,不包括一列或一系列的单元格,任何人有什么想法如何做到这一点,而不诉诸手工进入后生成和取消保护? 提前感谢^ _ ^

C#确定Excel中所选对象的types

我想写一个函数返回一个string,表示当前在Excel中select的对象的types。 现在,这是我所拥有的: public String GetExcelType(dynamic thing) { if(thing.GetType().GetProperty("ChartStyle") != null) { return "[CHART]"; } else if (thing.GetType().GetProperty("Cells") != null) { return "[TABLE]"; } return "[UNKNOWN]"; } 然后后来打电话给: GetExcelType(oExcelApp.ActiveWindow.Selection); 问题是,它每次都返回“[UNKNOWN]”。 进一步混淆这个问题,popup打开一个debugging会话,我们可以清楚地看到该对象有问题的属性(在这种情况下“单元格”): 我拉动dynamic.GetType().GetProperty("foo")从其他几个问题(大家似乎同意这应该工作)位,但似乎在这里翻牌。 我究竟做错了什么?

以编程方式更改评论框的大小

我可以以编程方式添加注释到C#中使用Range.AddComment方法的Excel单元格: range.Cells[1, 1].AddComment("Hello World!"); 我的问题是,我需要添加的一些意见是相当长的。 在我的testing过程中,评论框似乎保持默认的大小,不pipe评论多长时间。 这意味着用户最初单击单元格时不能看到所有的注释。 有没有一种方法,我可以使用更多的控制如何评论显示,所以我可以避免这个问题?

使用excel和visual studio 2010时出现“Class not registered”错误

你好,我试图从Excel中导入数据到可视化的基本variables,但即时通讯一个奇怪的错误。 我没有添加对微软excel com库的引用。 Imports Microsoft.Office.Interop.Excel Module Module1 Sub Main() ExtraerCostos() End Sub Public Sub ExtraerCostos() Dim numero As String Dim aux As String Dim costos(20) As Double Dim cant As Integer Dim excelApp As New Microsoft.Office.Interop.Excel.Application Dim workbook As New Microsoft.Office.Interop.Excel.Workbook ' The error points to this line Dim sheet As New Microsoft.Office.Interop.Excel.Worksheet excelApp = […]

如何使用C#互操作生成从Excel表格图表?

我可以生成excel文件,当我通过datatable进入下面的function。 public static void ExportDataTableToExcel(DataTable dt, string filepath) { object missing = Type.Missing; object misValue = System.Reflection.Missing.Value; //create excel Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); //add excel workbook Microsoft.Office.Interop.Excel.Workbook wb = excel.Workbooks.Add(); //add worksheet to workbook Microsoft.Office.Interop.Excel.Worksheet ws = wb.Sheets[1] as Microsoft.Office.Interop.Excel.Worksheet; //add 2nd worksheet to workbook Microsoft.Office.Interop.Excel.Worksheet ws2 = wb.Sheets[2] as Microsoft.Office.Interop.Excel.Worksheet; //Set the header-row […]

如何检查工作表是否已经存在于Interop中

我想在创build之前检查表单是否存在。谢谢你 using Excel = Microsoft.Office.Interop.Excel; Excel.Application excel = new Excel.Application(); excel.Visible = true; Excel.Workbook wb = excel.Workbooks.Open(@"C:\"Example".xlsx"); Excel.Worksheet sh = wb.Sheets.Add(); int count = wb.Sheets.Count; sh.Name = "Example"; sh.Cells[1, "A"].Value2 = "Example"; sh.Cells[1, "B"].Value2 = "Example" wb.Close(true); excel.Quit();

如何清理C#中的Excel互操作对象

当我运行下面的代码时,它仍然不释放excel对象。 public static List<string> GetExcelSheets(string FilePath) { Microsoft.Office.Interop.Excel.Application ExcelObj = null; Workbook theWorkbook = null; Sheets sheets = null; try { ExcelObj = new Microsoft.Office.Interop.Excel.Application(); if (ExcelObj == null) { MessageBox.Show("ERROR: EXCEL couldn't be started!"); System.Windows.Forms.Application.Exit(); } theWorkbook = ExcelObj.Workbooks.Open(FilePath, 0, true, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true); List<string> excelSheets = […]

使用Excel Interop抓取Excel图表的图像,而不写入磁盘或使用剪贴板

Excel中图表对象的接口只允许通过两种方法访问表示图表的图像: 导出,将图像保存到文件中 CopyPicture,将图像保存到剪贴板 这两个选项都是有问题的(保存到文件非常慢,保存到剪贴板可能会破坏用户数据)。 有一个更好的方法吗? 我能想到的唯一方法是使用创build一个临时的RAM磁盘并将其挂载在'%TEMP%\ tmp_ram_disk \'下面,以便保存到磁盘选项不会很慢,但是确定该怎么做或者甚至是可能的。 这是一个C#项目。

使用VS2010和Excel 2010访问FormatConditionexception

当我尝试访问FormatConditions集合中的FormatCondition项目时,出现以下exception。 无法将“System .__ ComObject”types的COM对象转换为接口types“Microsoft.Office.Interop.Excel.FormatCondition”。 此操作失败,因为IIC“{00024425-0000-0000-C000-000000000046}”接口的COM组件上的QueryInterface调用失败,原因是出现以下错误:没有此类接口支持(exception来自HRESULT:0x80004002(E_NOINTERFACE)) 。 我正在使用VS2010 SP1,C#,Excel 2010 32位 到目前为止,我创build了一个Excel电子表格,并将条件格式添加到单元格B3。 在代码I中: 打开电子表格。 获得细胞b3 validationFormatConditions.Count返回1。 我遇到以上exception,当我尝试以下: fmtCond = (Excel.FormatCondition) testCell.FormatConditions.Item(1); 我使用的代码似乎在另一台PC上构buildw / VS2005和Excel 2007时工作正常。

(另一种).net Excel僵尸问题

我有一个程序在后台离开Excel的僵尸进程的问题。 我已经遵循了所有的build议和例子,这里试图避免这一点,但它使我疯狂的MSDN。 任何人都可以发现是什么导致僵尸进程发生? Imports System Imports System.Collections Imports System.IO Imports Excel = Microsoft.Office.Interop.Excel Private Sub LoadExcelButton_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)处理LoadExcelButton.Click Dim xlApp As New Excel.Application Dim xlBook As Excel.Workbook = Nothing 'instantiated to nothing to help try and avoid zombies Dim xlSheet As Excel.Worksheet = Nothing Dim STFRange As Excel.Range = Nothing Dim […]