Tag: com interop

以编程方式(C#)将Excel转换为图像列表

如何将Microsoft Excel(.xlsx)文件转换为PPT 我的预定algorithm 以编程方式获取 Excel文件中的图表 (c#)。 并保存在图像列表中 目前,我正在使用Microsoft Interop库,即使通过我不喜欢我没有任何自由的select这个任务 所以我目前的解决方法如下: 使用Microsoft Interop打开Excel文件; 在Excel中查找所有图表 使用该图表上的CopyPicture(),它将数据复制到剪贴板。 一旦我们在列表中的图像,我们可以添加到新的PPT文件创build新的PPT文件 请让我知道如何添加到剪贴板图片列表 public List<Image> Chartimages; public List<Metafile> ChartimagesMetafile; public List<BitmapSource> ChartimagesBitmapSource; public void InsertChartIntoChartlist() { try { // Create an instance of PowerPoint. powerpointApplication = new pptNS.Application(); // Create an instance Excel. excelApplication = new xlNS.Application(); // Open the Excel workbook […]

Office(Excel)使用.NET Core在Mac OSX上进行COM互操作?

我为一个目前专门在C#/ .NET中创buildWindows桌面应用程序的团队工作,该团队通过Office COM Interop与Microsoft Excel的本地用户实例进行交互操作。 我目前负责指定一个新产品,但是我被告知,除非应用程序可以在Mac和Windows上运行,否则这个项目不会继续下去 – 也就是说,我们必须能够生成Mac版本的应用程序可以本地安装在OSX上,并与Mac用户的Microsoft Excel实例的对象模型进行交互。 使用Parallels,Mono或Wine运行应用程序(请参阅OSX中的COM Interop Through Wine ,这是从来没有回答的)不是一个解决scheme,因为应用程序的规范要求用​​户机器没有任何修改。 我们只需要假设用户有一个Excel的许可本地副本运行,并与…这是我们一直在Windows上做的,它在哪里工作很好。 我认为.NET核心是答案,但我无法find任何地方,它肯定地说,我们可以(或将能够)从C#访问Excel对象库时在Mac OSX上运行.NET Core与本地副本的Excel为Mac安装。 有人可以指点我已经讨论过的地方,或者不是,告诉我如何从微软那里find如果这是在他们的.NET核心路线图?

写入Workbook.CustomDocumentProperties时,“价值不在预期范围内”

从C#编写的控制台应用程序中进行如下所示的简单分配: workbook.CustomDocumentProperties.Item["PropertyName"] = "Property Value"; 产生以下错误: {"Value does not fall within the expected range."} Data: {System.Collections.ListDictionaryInternal} HResult: -2147024809 HelpLink: null IPForWatsonBuckets: 0x633f1015 InnerException: null IsTransient: false Message: "Value does not fall within the expected range." ParamName: null RemoteStackTrace: null Source: "System.Dynamic" StackTrace: " at System.Dynamic.ComRuntimeHelpers.CheckThrowException(Int32 hresult, ExcepInfo& excepInfo, UInt32 argErr, String message)\r\n at CallSite.Target(Closure , […]

无法从COM添加引用

我无法从我的窗口/程序集目录中selectMicrosoft.Office.Interop.Excel。 我可以看到有一个在那里,但它没有给我select参考。 我如何select它?

Excel Com Interop ASP.Net无法将文件写入磁盘。 权限?

我有一个非常简单的网页表单,让用户select报表,一个他们希望在xls格式,而不是CSV格式的报告。 我已经使用COM INTEROP与excel 2007掀起了报告。它在我的本地计算机上工作,并可以写入文件,但在Web服务器上失败,出现此错误: 由于没有足够的可用内存或磁盘空间,Microsoft Office Excel无法打开或保存更多的文档。 •要提供更多内存,请closures不再需要的工作簿或程序。 •要释放磁盘空间,请从保存的磁盘中删除不再需要的文件。 服务器上有足够的磁盘空间,所以我不认为这是一个权限问题? 我已经升级了ASPNET和NETWORK SERVICE帐户,以便对我们保存报告的文件夹进行写入和修改访问 – 但仍然没有喜悦。 有任何想法吗? 我是否需要使用特定的用户帐户调用com对象,或者可以将interop调用提升为pipe理员帐户? 任何想法如何做到这一点?

如何将三个Excel工作表放在一个工作簿下

我有三个Excel工作表,我想在一个工作簿下合并。

从Excel中只select一个列值

所以我使用C#来读取一个Excel(.xlsm)文件,一切都很好…直到我想要做的只是读一列。 这就是我想要做的,这里有一些示例代码: Worksheet sheet = (Worksheet)workBookIn.Sheets[sheetName]; Range r = sheet.get_range("B2", sheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell)); Array vals = pitch.Cells.Value; 另外,如果任何人都可以提出更优雅的方法来处理代码的后半部分(即处理Excel值的范围),请随时发表评论。

如何在c#中插入一行并格式化一行Excel

我使用Microsoft.Office.interop创build了一个excel文件。 现在我想为该excel文件中的所有列添加标题。 也要大胆,颜色标题行。 我有这样的东西: using Excel = Microsoft.Office.Interop.Excel; //initialize&create,open app,wb,… for (rCnt = 1; rCnt <= range.Rows.Count; rCnt++) { WorkSheet2.Cells[rCnt2, 1] = xlWorkSheet.Cells[rCnt, 1]; xlWorkSheet2.Cells[rCnt2, 2] = xlWorkSheet.Cells[rCnt, 2]; rCnt2++; } 格式化,我经常使用 range1=xlworksheet.get_Range("A1","A4"); range1.Font.Bold; 你可以提供这个使用互操作的C#代码?

使用Excel应用程序对象将数据导出到模板化Excel工作表

我正在用C#创build一个Windows应用程序,其中要求在Windows窗体中显示Excel电子表格。 有一些预定义的Excel模板由数据库中的数据填充。 来自数据访问层的数据是以IEnumerable对象的forms存在的,它将填充Excel模板中的数据。 我能够填写Excel模板中的数据,但问题与填充预定义的模板有关。 任何帮助赞赏。 提前致谢。

为什么types化的.NET数组不是generics? (即SomeType != Array {SomeType})

[背景:]为了使对Excel的interop API编程更容易,我为常见的任务创build了很多扩展方法。 其中许多是Excel的集合对象,如工作簿,表格等的LINQ风格的方法。所有的扩展方法在一个程序集中,我在任何应用程序或插件中引用该程序集需要的方法。 扩展方法程序集和目标应用程序都embedded了来自同一主互操作程序集的互操作types。 所有东西都是用.NET 4.0编写的,引用了PIA版本15。 我只是为ListObjects接口创build了一些扩展方法,它们给我编译器错误,“组件Y.dll中的成员X不能跨越程序集边界使用,因为它包含一个具有通用types参数的types,该参数是embedded式互操作types“。 这是导致错误的方法: public static IEnumerable<ListObject> Where(this ListObjects me,Func<ListObject, Boolean> condition) { var list = new List<ListObject>(); foreach (ListObject x in me) if (condition(x)) list.Add(x); return list; } 这是一个类似的方法, public static IEnumerable<Workbook> Where(this Workbooks me, Func<Workbook, Boolean> condition) { var list = new List<Workbook>(); foreach (Workbook x in me) if […]