Tag: excel interop

如何捕获Excel工作簿打开完成?

我打开巨大的工作簿使用Excel互操作,我需要保存工作簿后打开完成为什么,因为保存后,只有我的插件选项卡启用,所以我想跟踪工作簿打开完成。 现在我通过在打开和保存工作簿之间插入睡眠来处理这个问题。 有没有更好的方法来获得开放完整的Excel。 Excel.Application app = new Excel.Application(); Excel.Workbook wb = app.Workbooks.Open(fileName); Thread.Sleep(5000); wb.Save(); 完成后如何保存工作簿。 在这里,我假设工作簿在5秒内完全打开,但这不是一个好的解决scheme。 任何人都可以帮我解决这个问题吗?

使用Microsoft.Office.Interop.Excel时,Excel 2007保持打开状态

我知道这已经被讨论了很多,但我找不到解决scheme,可以解决我的具体问题。 我已经编写了使用Microsoft.Office.Interop.Excel将.csv文件中的数据复制到.xlsb文件的代码。 我的问题是,当我使用安装了Excel 2007的计算机时,Excel进程保持打开状态。 我已经testing了与Excel 2003和2010相同的代码,一切工作正常。 解决类似问题的大多数解决scheme都提到一个参考被遗留下来,所以我减less了大部分的代码,直到我离开这个: class Program { static void Main(string[] args) { Excel.Application oApp = null; Excel.Workbooks oWBs = null; Excel.Workbook oWB = null; try { //Start Excel and get Application object. oApp = new Excel.Application(); // Open existing workbook oWBs = oApp.Workbooks; oWB = oWBs.Open(xlsbFile); // Save the workbook oWB.Save(); } […]

C# – Excel / InteropServicesreplace方法遇到问题

所以search已经返回了如何使用Replace方法的一些结果,但我还没有得到任何工作。 希望你们能帮助我指出正确的方向! 这是我的。 我调用Replace方法时出现错误。 我怀疑我正在做一些错误的范围,但我不确定。 private Process DoExcelWork(Process excelProc, string filePath) { // Initialize Excel Application Excel.Application excelApp = new Excel.Application(); excelApp.Visible = false; // Get the process Process[] possibleProcesses = Process.GetProcessesByName("Excel"); excelProc = possibleProcesses[0]; // Empty Object for optional arguments object optional = System.Reflection.Missing.Value; Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(filePath, optional, optional, optional, optional, optional, optional, […]

在C#中打开一个Excel插件

我inheritance了一个C#windows应用程序,它构build了一个大的电子表格来显示给用户。 增强function是将现有的Excel加载项添加到此电子表格中。 我一直试图添加电子表格一旦完成的代码就像这样: excelApp.Visible = true; // trying to add the Add-in string workBookPath = @"C:\AddinIWasGiven.xls"; Workbook excelWorkbook = excelApp.Workbooks.Open(workBookPath, 0, false, 5, "", "", false, XlPlatform.xlWindows, "", true, false, 0, true, false, false); 每当我这样做,我得到这个错误:“无法打开Microsoft Excel加载项进行编辑,请改为编辑源文件”。 我不确定为什么我得到这个错误。 我确实看到,excelWorkbook以“C:\ AddinIWasGiven.xls”的forms出现,但我读到的可能是debugging器如何显示它。 我是新手join项和C#。 任何build议或帮助将不胜感激。 随着一些帮助和试验和错误,我发现这工作: stringworkBookPath = @“C:\ Addin.xla”; 工作簿excelWorkbook = excelApp.Workbooks.Open(workBookPath,0,false,5,“”,“”,false,XlPlatform.xlWindows,“”,false,false,0,true,false,false);

C#打印特定的Excel工作表

目前我有这个代码打印工作簿中的所有工作表: MyApp = new Excel.Application(); MyApp.Visible = false; MyBook = MyApp.Workbooks.Open(generatedFile); foreach (Excel.Worksheet ws in MyBook.Worksheets) { Excel.PageSetup ps = (Excel.PageSetup)ws.PageSetup; ws.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape; ws.PageSetup.Order = Excel.XlOrder.xlDownThenOver; //ws.PageSetup.FitToPagesWide = 1; //ws.PageSetup.FitToPagesTall = 50; //ws.PageSetup.Zoom = false; } MyBook.Worksheets.PrintOutEx(); MyBook.Close(SaveChanges: true); MyApp.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(MyApp); 我的问题是,如何才能在同一个打印作业上打印选定的工作表(某些特定单元格不是空的)? 如果我没有错误地调用WorkSheet.PrintOut() for n WorkSheets将创buildn个打印作业,对吧?

使用对象模型作为不同的用户打开excel文件

我有一个Excel文件,我试图打开使用Excel对象模型(互操作)与C#。 我想打开它作为不同的用户从当前login的用户。 就像是: Workbook workbook = excelApp.Workbooks.OpenAs(targetPath, username, password); 任何想法如何(如果)它可以做?

使用Interop库在Excel中更快地添加图像

我只是简单地将数值放入Excel中,并将图像放入某些特定的单元格中。 我的代码示例看起来像这样; //sb is a String Builder and gets filled by loop xlWorkSheet.Cells[sheetRowPosition, 4] = sb.ToString(); xlWorkSheet.Shapes.AddPicture(loadPath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, float.Parse(((left) + 5).ToString()), float.Parse(((top) + 5).ToString()), 60, 60); 我已经完成了,就像循环一个集合并将数据插入单元格一样。 但是像龟一样慢。 所以我改变了我的想法,像这样刷新我的代码; private static void WriteArray(int rows, int columns, Worksheet worksheet) { var data = new object[rows, columns]; for (var row = 1; row <= rows; row++) […]

Workbooks.Open方法抛出HRESULT:0x800A03EC

我打开一个Excel文件使用 object missing = Type.Missing; xlWorkBook = xlApp.Workbooks.Open(strFilePath, missing, false, missing, missing, missing, true, missing, missing, missing, missing, true, missing, missing, missing); 它会抛出HRESULT: 0x800A03EC 它与Office 2010工作正常,但在更新办公室库到版本15,当部署到办公室2013年的服务器。我开始得到这个消息。 我也曾尝试在DomConfig中授予Excel对象的权限,但它没有工作,

无法获取Worksheet类的复制属性

我试图从工作簿复制工作表到另一个使用Worksheets.Copy函数。 但是,这似乎只在一些文件中工作,而对于其他人我得到“无法获得Worksheet类的复制属性”错误消息。 我试图从其他工作簿手动复制/移动工作表。 此外,尝试解除/保护工作簿和工作表,但似乎没有工作。 我正在使用Microsoft Office 2010.是否有Excelfunction可以启用/禁用从其他工作簿复制工作表?

ExcelexceptionHRESULT:ChartArea.Copy()中的0x800A03EC

我正在使用excel interop.dll v11.0与一个Excel实例交互的C#应用​​程序。 我正在使用下面的代码将图表从Excel工作表复制到剪贴板: public Image ReadChart(Chart chartAccess) { try { Microsoft.Office.Interop.Excel.Worksheet sheet = workbook.Sheets[chartAccess.Sheet.Name]; Microsoft.Office.Interop.Excel.ChartObject chart = sheet.ChartObjects(chartAccess.Name); chart.Chart.ChartArea.Copy(); // exception gets thrown here return System.Windows.Forms.Clipboard.GetImage(); } catch (COMException) { // display error dialog etc… } 这与Excel 2007工作正常。但是,由于切换到Excel 2013函数ChartArea.Copy()导致以下COMExceptions被引发: Message: "Dimension not valid for chart type" Stack Trace: System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, […]