Tag: 互操作

Excel InterOp:如何WorkBook.SaveAs使用绝对path时,不允许使用“:”?

我正在尝试使用以下代码从内存中保存工作簿: this.Target.WorkBook.SaveAs(this.Target.WorkBookPath, Interop.XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Interop.XlSaveAsAccessMode.xlNoChange, Type.Missing,Type.Missing,Type.Missing,Type.Missing); 在这里.Target.WorkBookPath从configuration文件读取为: d:\ Devzone \ rpt_SalesMargins2 但我得到这个错误消息: 该文件无法访问。 请尝试以下方法之一:\ n \ n•确保指定的文件夹存在。 \ n•确保包含文件的文件夹不是只读的。\ n•确保文件名不包含以下任何字符:<>? []:| 或* \ n•确保文件/path名称不超过218个字符。 所以,如果我不能使用“:”那么我怎么能指定D:\? 更新/圣灵检查 在这个图像文件被称为rego,我已经尝试了几个随机名称,所有的工作作为相对path,但失败时,absoluted。

DateTime到Excel区域问题

我强烈键入我的DataTable DateTime列,然后将DataTable转换成对象[,]并粘贴到Excel中。 我的问题是,在某些情况下,date以美国格式和其他英国格式显示。 做这个操作的标准做法是什么,并确保粘贴正确的date,并保持列的types?

检查Excel的DLL和dynamic加载

我正在使用Microsoft.Office.Interop.Excel将数据写入Excel文件,我在我的机器上安装了Excel 2010。 但是我需要程序在老版本的Excel上运行。 该程序应该检查安装在特定的机器上的版本,并dynamic加载DLL,以免得到一个遗漏参考错误.. If Excel 2003 is available, use it. Else If a higher Excel version is available, use it Else show an error message since this means that Excel is not installed in the machine 有没有办法做到这一点? 我真的很难find一个解决scheme。 任何帮助,将不胜感激。 提前致谢..

Excel工作簿和graphics

希望这不是太棘手,但是,我一直在用C#和Visual Studio 2012开发一个应用程序来分析文本并创build一系列List<T> 。 有了这个,我已经成功地将这些数据导出到Excel电子表格。 但是,我已经尽可能在新的工作表上创build一个图表,但是,我无法弄清楚如何从列表中的一个或其他工作表中获取数据并将其graphics化。 这是我一直用来创build图表的代码片段: const string topLeft = "A1"; const string bottomRight = "A4"; const string graphTitle = "License use"; const string xAxis = "Time"; const string yAxis = "Number of licenses"; var charts = worksheet.ChartObjects() as Microsoft.Office.Interop.Excel.ChartObjects; var chartObject = charts.Add(60, 10, 300, 300) as Microsoft.Office.Interop.Excel.ChartObject; var chart = chartObject.Chart; // […]

Excel UDF更改智能标记错误菜单

我想实现我在这张照片上展示的东西。 更改单元格错误智能标记菜单选项。 有没有人知道这样做的方式(最好从udf代码)?

从HRESULTexception:0x80010105(RPC_E_SERVERFAULT)打开xlsx文件时

我有这个例外,这让我疯狂。 当我尝试以这种方式打开一个.xlsx文件 Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); string v = "path\File.xlsx"; Workbook wb = app.Workbooks.Open(v); //This triggers the exception app.Visible = true; Worksheet sh = wb.Sheets[1]; 我有这个例外 Error: System.Runtime.InteropServices.COMException (0x80010105): Server launches an exception. (Exception from HRESULT: 0x80010105 (RPC_E_SERVERFAULT)) at Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object […]

C#:MS Excel中checkbox的状态

我试图通过C#获取XLS文档中存在的checkbox的状态。 让我回到这里。 这是我的: MS Office 2007 +开发工具和VC#2010 Express 引用的MS Excel 12.0对象库 一个XLS文件 我成功地检索Excel.Shape对象。 但是,当我试图确定它是否被选中时,我被卡住了。 到目前为止,我已经获得了它的AutoShapeType,它说msoShapeMixed。 有人能指点我正确的方向吗? 谢谢! class Program { static void Main(string[] args) { Application excel = new Application(); Workbook wb = excel.Workbooks.Open( "document.xls", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value ); Worksheet ws = wb.Worksheets[3]; Microsoft.Office.Interop.Excel.Shape […]

C#Interop非可调用成员“Microsoft.Office.Interop.Excel.Range.End”不能像方法一样使用

我正在使用C#互操作从工作表中获取一些值,我得到以下错误: 非可调用成员“Microsoft.Office.Interop.Excel.Range.End”不能像方法一样使用。 这是我的代码: var wb = (Excel.Workbook)Globals.ThisAddIn.Application.ActiveWorkbook; var wsEvars = wb.Sheets["Evars"]; var wsProps = wb.Sheets["Props"]; var wsEvents = wb.Sheets["Events"]; var wsListVars = wb.Sheets["List Vars"]; var sheetList = new Excel.Worksheet[] { wsEvars, wsProps, wsEvents, wsListVars }; for (var i = 0; i < sheetList.Length; i++) { // I get the error on the line below var […]

从2003年到2007年升级Office将通过COM互操作打破使用Excel的VB程序?

假定Office 2003的所有痕迹都将从计算机中删除。 更新: 我知道我仍然可以使用.xls文件。 我正在通过外部Excel的COM互操作来询问自动化Excel。 当我将一个对Excel的引用添加到VB项目时,它给了我不同版本的Excel的不同版本的DLL。 如果一个程序是参考Office 2003的dll编译的,是否需要重新编译Office 2007? 将代码需要更新使用新的DLL?

Interop Excel自动化 – 使用服务帐户打开工作簿

我在这里遇到一些情况,希望得到一些反馈或build议。 我已经获得了一个作为服务运行的应用程序,并具有特定的服务帐户(不是服务器上的pipe理员),并尝试打开Excel工作簿。 问题不在于初始应用程序,因为我可以使用下面的通用C#代码(embedded在服务结构中)重现它: try{ this._exApp = new Microsoft.Office.Interop.Excel.ApplicationClass(); this._exApp.Visible = false; Log.Logger.Info("Opening workbook…"); Workbook workbook = this._exApp.Workbooks.Open( thisFileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing ); Log.Logger.Info("Workbook opened!"); //Do something with the result Log.Logger.Info("Closing workbook…"); workbook.Close(false, thisFileName, null); Marshal.ReleaseComObject(workbook); this._exApp.Quit(); } catch(Exception ex){ Log.Logger.Error(ex.Message); } (没有什么特别的* this._exApp *和thisFileName ,它们分别被转换成一个Microsoft.Office.Interop.Excel.Application,并作为一个string打开文件的path.Log.Logger是一个logging类log4net让我看到问题发生时) […]