Tag: office interop

如何获取用作C#4dynamic互操作方法调用参数的Excel对象?

我和excel互动很愉快。 这是一个微风,直到我撞到一堵砖墙。 这就像一个魅力。 dynamic excel = System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); 它允许像这样的东西 var headercell = excel.Cells(RowNumber,ColumnNumber); headercell.Value = moddef.Name; headercell.Orientation = -60; headercell.Font.Color = 0x00AA00; headercell.Interior.Color =0xCCCCCC; headercell.Font.Size = 20; headercell.ClearComments(); headercell.Data = "Here we are LIVE with excel"; 这一切都很好,因为我到目前为止只使用简单的types与Excel交互。 不过,我想围绕桌子画一个边框。 var bottomright = headercell.Offset(height,width); var wholeSection = excel.Range(headercell,bottomright); wholeSection.BorderAround(/*what goes in here??*/); 在msdn文章Range对象成员中 , BorderAround方法显示了一些要传入的参数。到目前为止,我还没有引用Excel互操作程序集。 我必须引用它来创buildBorderAround参数还是有另一个一般的技巧,我应该如何处理调用需要Exceltypes参数的方法?

将互操作typesembedded到不起作用

我在项目中使用Office引用,实际上是Excel引用。 不过,我已经编译这样的问题 – > Interoptypes不能被embedded 我将Embed Interop Types设置为false。 然而,它不起作用,编译器仍然像上面那样给出错误。 出现这个问题是因为:几个月前我完成了这个项目。 人们正在使用它,但他们想要一些额外的。 当我完全构build项目时,Office 2007安装在我的电脑上。 现在,我有Office 2010,所以我认为主要的原因是这样的。 谢谢。

在WPF控件中显示Microsoft Office文档

我正在开发一个WPF应用程序,允许用户浏览目录的内容。 我想要做的是,如果用户点击一个Microsoft Word或Excel文档,让文件显示在WPF应用程序中的视图控件(如滚动查看器或其他)。 我试图做一个全function于一身的文件查看器,所以用户不必打开单独的Word和Excel窗口。 用户不需要能够编辑文件,只需查看它。 另外,用户将在他们的计算机上安装Word和Excel。 这可能吗? 我正在阅读冲突的答案,似乎有一个假设,用户不一定安装Office。 在这种情况下,是的,他们将在他们的本地机器上安装Office。

如何从Excel工作表中删除隐藏的列/行?

我想从Excel工作表中删除所有隐藏的列,我正在使用Microsoft Office Interop 。 问题是当我遍历列我没有find列隐藏属性设置。 我不知道我在这里做错了什么。 任何帮助,将不胜感激 int columnCount = wsCurrent.UsedRange.Columns.Count; Excel.Worksheet wsCurrent = (Excel.Worksheet)wsEnumerator.Current; for (int c = 1; c <= columnCount; c++) { if (wsCurrent.UsedRange.get_Range((Excel.Range)wsCurrent.UsedRange.Cells[1, c], (Excel.Range)wsCurrent.UsedRange.Cells[wsCurrent.Rows.Count, c]).EntireColumn.Hidden) Console.WriteLine("Column Hidden"); }

Excel InterOp:更新数据透视表数据源中断计算字段

我有Sheet1,它包含所有的数据和Sheet2中的一个数据透视表,它引用这个数据作为数据源。 当数据需要刷新时,我擦除除标题行之外的数据,然后追加新的数据。 一切都更新正常,除了以公式计算的折扣百分比计算字段 =%NAME /%NAME 我如何以编程方式重置该字段的公式,并在该列上强制刷新或以其他方式防止公式的丢失。

在excel第二张表中创build图表

我正在编写一个C#Interop代码,以在第二张图表的Excel中创build报表。 我能够创build图表,但它是在第一张表。 请帮助在第二张表中得到相同的。 我的代码在这里。 Range chartRange; Object misValue = System.Reflection.Missing.Value; ChartObjects xlCharts = (ChartObjects)sheet0.ChartObjects(Type.Missing); ChartObject myChart = (ChartObject)xlCharts.Add(10, 70, 250, 250); Chart chartPage = myChart.Chart; chartRange = sheet0.get_Range("G1", "H1"); chartPage.SetSourceData(chartRange, XlRowCol.xlColumns); chartPage.ChartType = XlChartType.xl3DLine;

在Microsoft Excel从应用程序外部打开且无法closures的情况下,C#应用程序中使用的Excel文件变得可见

我正在使用Interop Excel,我的代码工作正常 class GeneralData { public static string excelPath = System.Windows.Forms.Application.StartupPath + @"\SteamProp"; public static ExcelApp._Application oExcel; static ExcelApp.Workbooks oBooks; public static ExcelApp._Workbook oBook; static object oMissing = System.Reflection.Missing.Value; // Function will be used in Main Form Load Method public static void OpenExcelConnection() { oExcel = new ExcelApp.Application(); oExcel.Visible = false; oBooks = oExcel.Workbooks; oBook […]

Excelgraphics到PowerPoint C ++ / CLI从HRESULTexception:0x800A03EC

我试图复制excelgraphics,然后将它们粘贴到使用C ++ / CLI的PowerPoint中,尽pipe在尝试使用Copy()方法时遇到了困难。 这里是我的代码现在的简化版本: Worksheet = dynamic_cast<Excel::Worksheet^>(WS[3]); chartObjects = dynamic_cast<Excel::ChartObjects^>(Worksheet->ChartObjects(paramMissing)); existingChartObject = dynamic_cast<Excel::ChartObject^>(chartObjects->Item(2)); existingChartObject->Copy(); shapeRange = Slide->Shapes->Paste(); 但是当我尝试这个,给我一个错误: An unhandled exception of type 'System.NullReferenceException' occurred in Excel To PPT.exe Additional information: Object reference not set to an instance of an object. 现在我的Excel工作簿在每张纸上都有6张图,从纸张3开始。如果我复制了纸张3上的所有graphics,并将它们粘贴到这样的一张幻灯片上。 把这个尝试叫做一个 for(count = 1, count <= 6; ++count){ Worksheet = dynamic_cast<Excel::Worksheet^>(WS[2]); chartObjects […]

C#excel从c#创build的工作表中获取文档级别

我一直在试图添加一个combobox或真正的任何forms的控制到飞行中创build的Excel表。 在c#中创build一个Excel工作簿项目时,我可以添加一个combobox到excel工作表,并且能够访问文档级(Sheet1)中的Controls.AddComboBox函数,如下所示:图1 namespace ExcelWorkbook2{ public partial class Sheet1{ private void Sheet1_Startup(object sender, System.EventArgs e){ Microsoft.Office.Tools.Excel.Controls.ComboBox comboBox1 =this.Controls.AddComboBox(this.Range["A1", "A1"], "comboBox1"); comboBox1.Items.Add("1 Item"); this是指sheet1这个代码在创build工作簿项目时工作正常,但是当我像这样创build一个Excel工作表时:图2 Application xlApp = new Application(); xlApp.Visible = true; Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); Worksheet ws = (Worksheet)wb.Worksheets[1]; 我无法进入工作表(ws)并获得“controls.AddCombobox”。 将工作表(图2)放在快速表中说System .___ Comobject在另一个项目(图1)中的“this”对象返回值(ExcelWorkbook2.Sheet1)。 我怎么能到达Controls.AddCombobox作为WorkSheetBase在c#生成的工作表中使用(图2)。 谢谢

Excel 14而不是Excel 15(2013)推出

我做了一个简单的C#项目,引用了Excel 15 <Reference Include="Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL"> <EmbedInteropTypes>False</EmbedInteropTypes> </Reference> 但是,Excel 14(2010)在运行程序时启动 namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var a = new Microsoft.Office.Interop.Excel.Application(); var v = a.Version; //14 !! System.Console.ReadLine(); } } } 我在这里错过了什么?