Tag: 互操作

我可以将Microsoft.Office.Interop.Excel.Chart对象转换为Microsoft.Office.Tools.Excel.Chart对象吗?

基本上我已经在VB.NET 2010中编写了一个Excel 2007项目,允许您创build具有相当数量的交互性的图表。 我希望用户能够保存并重新打开这个工作簿,并且在任何已经创build的图表中仍然具有交互性,所以他们不必重新创build它们。 当我创build图表时,我使用Sheet1.Controls.AddChart(…),它返回一个Microsoft.Office.Tools.Excel.Chart,我可以处理事件等。 但是,当我重新打开文件并查看Sheet1.Controls集合时,没有Chart对象。 当我需要工具图表时,通过Sheet1.ChartObjects.Chart访问图表给了我互操作图表。 有一个更好的方法吗? 我应该从一开始就使用Interop图表吗?

Excel活动是可见的

我正在使用下面的代码来使用Microsoft.Interop.Excel生成一个Excel文件。 问题是,我实际上可以看到工作簿生成,执行代码时,屏幕上打开一个Excel文档,文档开始填写数据。 这可以以某种方式在后台完成吗? 谢谢 Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); xlApp.Visible = false; if (xlApp == null) { MessageBox.Show("EXCEL could not be started. Check that your office installation and project references are correct."); return false; } xlApp.Visible = true; Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); try { if (details != false) { //Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); wb.Worksheets.Add(); Worksheet […]

C#和Microsoft.Office.Interop.Excel – 如何用它的值replace一个公式?

我试图用它们的值replaceD列上的公式。 例如。 目前D1 = C1 / 2 如果C1 = 10,我想D1是5 我需要这样做,因为我需要删除列C. 我尝试将格式更改为像下面的文本,但它似乎并没有用它们的值replace公式 Excel.Style style = workbook.Styles.Add("styleText", Missing.Value); style.NumberFormat = "@"; Excel.Range range = (Excel.Range)sheet.get_Range("D1", Missing.Value); range.Style = style;

C#。 微软interop excel。

我试图插入RoomType数组到Excel的书。 RoomType的范围是从D22到D25所以问题是这个代码只能把firts的值放在这个范围内。 如果我插入RoomType.set_Value到for循环,excel范围填充最后一个数组项目。 谁能帮我? Object[,] RoomtypeArray = new object[1, _RoomType.Count]; for (int i = 0; i < _RoomType.Count; i++) { RoomtypeArray[0, i] = _RoomType[i]; } RoomType.set_Value(Type.Missing, RoomtypeArray);

c#Excel互操作命名自定义单元格范围

如果你有Excel,你可以按下Control,例如select单元格C4 A22和B5,将它们命名为例如PLUTO,比你可以计算这些单元格和其他东西。 现在! 如何在C#中通过Excel Interop完成? 我玩getRange约3天,但不能得到一个结果 你可以帮我吗 ?

获取合并单元格的高度和宽度以放置图片。

我正在尝试自动resize的图片到我的excel中,但是它给了我原来的高度和宽度,而不是整个合并单元格的高度和宽度。 我正在使用Microsoft.Office.Interop.Excel与我的工作簿和电子表格进行交互。 //This is checking if is a photo if (File.Exists(ArrayNode[i].TagValue)) { float Left, Top, Width, Height; Left = float.Parse(cell.Left.ToString()); Top = float.Parse(cell.Top.ToString()); //This gives me the width and height of the cell, but i need it for the merged cells. Width = float.Parse(cell.Width.ToString()); Height = float.Parse(cell.Height.ToString()); String path = Application.StartupPath + "\\" + ArrayNode[i].TagValue; […]

Excel Codemodule属性

我试图从代码(C#)中检索codemodule的名称属性时出现问题。 当我ALT + F11我的Excel文件,我有以下内容:Chart1 Sheet2 Sheet3 ThisWorkbook 显示这些属性时,它们具有以下属性(名称):Chart1名称:通过率 我想要做的是从C#访问属性“名称”。 这可能吗? 我似乎能够检索到的是“(名称)”。 使用interop 11.0.0.0(office 2003)

写入Excel文件时文件名或path不存在或被其他程序使用

我正在尝试创build一个Excel文件并向其中写入一些数据。 这是我正在使用的代码。 using excel = Microsoft.Office.Interop.Excel; excel.Application xlapp; excel.Workbook xlworkbook; excel.Worksheet xlworksheet; object misvalue = System.Reflection.Missing.Value; xlapp = new excel.ApplicationClass(); xlworkbook = xlapp.Workbooks.Add(misvalue); xlworksheet = (excel.Worksheet)xlworkbook.Worksheets.get_Item(1); xlworksheet.Cells[1, 1] = "Muneeb Hassan Soomro"; xlworkbook.SaveAs("csharp-excelwrite.xls",excel.XlFileFormat.xlWorkbookNormal,misvalue,misvalue,misvalue,misvalue,excel.XlSaveAsAccessMode.xlExclusive,misvalue,misvalue,misvalue,misvalue,misvalue); //xlworkbook.SaveAs("csharp-Excel.xls", excel.XlFileFormat.xlWorkbookNormal); xlworkbook.Close(true, misvalue, misvalue); xlapp.Quit(); 我在xlworkbook.saveas()调用中遇到exception。 说: 文件名或path不存在或由其他程序使用 我在这里做错了什么?

SUMIF Excel公式c#exception未处理

我正在使用C#在Excel中使用SUMIF公式。 我使用下面的代码: oRng = (bSheet.Cells[row, 2] as Excel.Range); oRng.Formula = "=SUMIF(Sheet1!A:A;A1;Sheet1!B:B)"; 这将返回“exception未处理”错误。 在这种情况下,我尝试使用另一个公式作为简单的SUM(Sheet1!A1:A3),它的工作完美。 非常感谢!

为什么我不能查询Microsoft.Office.Interop.Excel.Connections?

Connections对象是一个IEnumerable: https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.connections.aspx 我只想在foreach中删除带有lambdaexpression式的注释行 这个: foreach (WorkbookConnection connection in book.Connections) { if (connection.Type != XlConnectionType.xlConnectionTypeOLEDB) continue; var conString = connection.OLEDBConnection.Connection.ToString(); if (conString.Contains("Initial Catalog") && conString.Contains("Data Source")) connection.OLEDBConnection.Connection = conString.Replace(ExlCubeServer, Settings.Default.OLAPServer[1]); } 像这样的东西: foreach (WorkbookConnection connection in book.Connections.Cast<Connections>().Where(c => c.Type == XlConnectionType.xlConnectionTypeOLEDB)) { //if (connection.Type != XlConnectionType.xlConnectionTypeOLEDB) continue; var conString = connection.OLEDBConnection.Connection.ToString(); if (conString.Contains("Initial Catalog") && conString.Contains("Data […]