Tag: comexception

使用ShapeRange在Excel中调整注释的大小

我有一个电子表格,它是以编程方式创build的,其中有很多注释(高达40,000)。 从工作表中删除多个列之后,这些注释会被resize。 这显然是一个Excel中的错误。 ( http://answers.microsoft.com/zh-cn/office/forum/office_2007-excel/excel-comment-boxes-resizing-themselves-andor/3fdf3e72-6ca5-4186-a656-b7b6fd8db781?msgId=d55534a5-4603 -482e-ac97-9ec260124f78 ) 理想情况下,我想在删除列后立即AutoSize全部注释。 试图避免循环每个单独的评论,这是我迄今为止尝试过的。 设置AutoShapeDefaults不起作用 – 删除列后,评论仍将resize。 XlPlacement属性。 XlMove和XLMoveAndSize不起作用。 无论注释量如何,Worksheet.Shapes.SelectAll都会抛出OutOfMemoryexception 我的想法是获取电子表格中所有注释的ShapeRange对象,并从那里设置大小。 这完美地工作: public static void ResizeComments() { Microsoft.Office.Interop.Excel.Workbook objWorkbook; objWorkbook = (Workbook)Globals.ThisAddIn.Application.ActiveWorkbook; Worksheet objSheet = (Worksheet)objWorkbook.ActiveSheet; int[] test = {1,2,3,4,5}; ShapeRange sRange = objSheet.Shapes.Range[test]; sRange.Height = 100; sRange.Width = 220; } 更改为在AutoSize行引发exception“来自HRESULT:0x800A03EC的exception”。 ShapeRange sRange = objSheet.Shapes.Range[test]; sRange.TextFrame.AutoSize = true; 使用我的实际数组形状指数抛出相同的exception,但在Shapes.Range […]

如何解决例外:呼叫被被叫方拒绝。 (从HRESULTexception:0x80010001(RPC_E_CALL_REJECTED))在C#中?

我已经在控制台应用程序中编写了一个C#代码来打开两个excel,并将数据从一个excel复制并粘贴到另一个excel。 它工作正常,直到目的地excel的可见性是真实的。 但是我需要在执行时隐藏excel。 所以我改变了可见性为false。 喜欢, _destExcelApp = new Excel.ApplicationClass(); _destExcelApp.Visible = false; 现在它显示出一个exception 呼叫被被叫方拒绝。 (从HRESULTexception:0x80010001(RPC_E_CALL_REJECTED)) 如何解决这个问题?

如果未安装Excel,如何创buildExcel的实例

在我的C#应用​​程序,在Excel Interop DLL(作为参考)的帮助下,我正在阅读/写入Excel文件。 如果我把这个程序移动到没有安装office / excel的系统(想想干净的机器),我打错了。 System.Runtime.InteropServices.COMException(0x80040154):由于以下错误,检索具有CLSID {00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败:80040154类未注册(exception来自HRESULT:0x80040154(REGDB_E_CLASSNOTREG ))。 预计以上错误,因为目标机器上没有excel。 我的问题是,除了在目标机器上注册Interop dll之外,是否还有其他方法可以使用我的程序?