Tag: interop

使用Interop.Excel将excel转换为PDF时不显示图像

我正在使用Interop.Excel将excel(xlsx)(2010)转换为PDF格式的应用程序。 在我的开发机器上,它工作正常,图像显示正确。 但是在服务器上将excel转换为PDF时,PDF中不显示图像(通过代码和模板文档中的其他代码插入的图像)。 excel文件查看时很好。 这里是我用来转换为PDF的代码: Public Shared Function FromExcel(ByVal ExcelFileLocation As String, ByVal PDFFileLocation As String) As Boolean ' Load the new Excel file ' http://msdn.microsoft.com/en-us/library/bb407651(v=office.12).aspx Dim excelApplication As ApplicationClass = New ApplicationClass() Dim excelWorkbook As Workbook = Nothing Dim paramExportFormat As XlFixedFormatType = XlFixedFormatType.xlTypePDF Dim paramExportQuality As XlFixedFormatQuality = XlFixedFormatQuality.xlQualityStandard Dim paramOpenAfterPublish As Boolean […]

保存并closures在C#.Net中创build的Excel文件使用Excel Office Interop dll

我很难find关于如何使用Exce正确closures和保存Excel文件的很好的文档; Office Interop DLL。 基本上,我已经一切工作,关于创build一个新的Excel工作簿,并填写第一个工作表的数据从列表(当我设置可视属性为真的应用程序对象,我可以看到Excel文件打开并填写工作表完全我想要的方式。) 我只需要知道如何正确closuresExcel文件并将其保存到我select的位置。 我想确保在代码完成后我彻底杀死了Excel–当我完成时,不希望它继续保留内存。 在填写完工作表后,我正在做以下工作: workbook.Save(); workbook.Close(Type.Missing, Type.Missing, Type.Missing); application.Quit(); 更新:我现在能够将Excel文件保存到我想要的位置。 我只是删除了Save()调用,并将Close调用更改为(true,filePath,Type.Missing),现在将文件放在所需的位置。 只有解决问题才能正确closuresCOM对象。 可能的解决scheme至less这似乎每次代码完成执行时从任务pipe理器中删除Excel。 // Close the workbook, tell it to save and give the path. workbook.Close(true, workbookPath, Type.Missing); // Now quit the application. application.Quit(); // Call the garbage collector to collect and wait for finalizers to finish. GC.Collect(); GC.WaitForPendingFinalizers(); // Release […]

Excel Interop工作表副本引发exceptionHRESULT:0x800A03EC

我在使用Interop在Excel 2003中复制工作表时遇到问题。 该代码适用于30-40个副本,然后抛出exception“HRESULTexception:0x800A03EC”。 下面的testing代码已经包含了http://support.microsoft.com/kb/210684/en-us中提供的修补程序,但没有成功。 有没有人知道这个解决方法? 提前致谢 using Excel = Microsoft.Office.Interop.Excel; private void button2_Click(object sender, EventArgs e) { string template_path = @"c:\temp\template.xlt"; string filename = @"c:\temp\testxl1.xls"; if (File.Exists(filename)) File.Delete(filename); object missing = System.Reflection.Missing.Value; System.Globalization.CultureInfo my_culture = System.Threading.Thread.CurrentThread.CurrentCulture; System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); Excel.ApplicationClass xlapp = new Excel.ApplicationClass(); xlapp.Visible = true; xlapp.UserControl = true; Excel.Workbook xlwb = xlapp.Workbooks.Add(template_path); […]

如何检测Excel工作簿是否closures(在C#中使用Interop)?

我正在使用Microsoft.Office.Interop.Excel.Application读取Excel文件中的值的C#项目: try { Application xlApp = new Application(); Workbook workbook = xlApp.Workbooks.Open(filename) // … Load Excel values … } finally { // … Tidy up … } 在finally块中,我想确保一切都被closures并正确处置,所以没有任何东西在内存中挂起,Excelclosures干净。 已经看到了这个代码应该看起来像什么(比我想象的更复杂)的各种线程,但它可能包括的一件事是: if (workbook != null) { workbook.Close(); // … possibly also Marshal.FinalReleaseComObject(workbook); } 但是,如果工作簿已经closures,这会引发一个错误,所以如何安全地检查这个? 如果可能的话,宁愿不要仅仅捕获错误,因为这种types的东西往往会扭曲debugging。 在closures之前find工作簿状态是否有一个干净的方法? 还有一个问题 – 如果xlApp.Quit();是否需要xlApp.Quit(); 之后完成 – 将退出Excel应用程序导致workbook.Close() (和任何COM对象释放)隐式发生?

Excel后台进程不closures

每次打开并用Iterop读取文件后,Excel后台进程都将保持打开状态。 几次运行下面的方法后,我结束了很多的Excel后台进程。 我意识到这已经在不同的时间问过,但我已经尝试了所有的build议(并在下面的代码中实现它们),没有任何工作。 有人可以帮忙。 public List<double> ReadExcelFile() { Application excelApp = null; Workbooks workbooks = null; Workbook workBook = null; Worksheet worksheet = null; Range excelRange = null; List<double> sheetValues = new List<double>(); try { excelApp = new Application(); workbooks = excelApp.Workbooks; workBook = workbooks.Open(f_inputFilePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, […]

如何获得某个Excel进程的窗口或进程句柄?

我们如何获得属于我们创build的Excel应用程序实例的Excel进程的应用程序窗口句柄或进程句柄? 我们正在使用Interop.Excel.dll版本1.3.0.0。 应用程序类似乎没有HWnd属性来调用。 请注意,找不到名称为excel.exe的所有进程是无法解决的,因为我们有许多并行运行的excel实例,我们只想closures某个实例。 Excel.Application app = new Excel.Application(); // .. do something with excel here app.Quit(); GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); GC.WaitForPendingFinalizers(); // this is in some cases still not enough to get excel killed uint processID; GetWindowThreadProcessId((IntPtr)hWnd, out processID); // how to get HWnd from this Excel application? Process.GetProcessById((int)processID).Kill();

如何在Excel中使用C#获取当前打开的文档?

我所需要的是在当前打开的Microsoft Excel实例中获取当前打开文档的列表。 但是我不懂Excel的术语来知道这些文档是否被称为工作簿,工作表或窗口等。 有任何想法吗

执行Excel Interop的C#控制台应用程序 – 按计划运行时失败Task -System.UnauthorizedAccessException

正如标题所述,我有一个C#控制台应用程序,它使用互操作来打开Excel并创build一个新的工作簿。 当通过命令行运行控制台应用程序时,代码工作正常。 但是,通过计划任务运行控制台应用程序时会引发此exception: System.UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005 这是从以下电话中抛出: _xlApp = new Excel.Application() 计划的任务设置为使用我的凭据(我是pipe理员)。 基于其他论坛,我确信我已经完全控制我的帐户在组件服务 – >计算机 – >我的电脑 – > DComconfiguration – > Microsoft Excel应用程序,但没有运气。 我在Windows 7企业版64位。 不知道下一步应该是什么,任何帮助表示赞赏

使用VS2008和Office2007将Excel转换为PDF

我正在尝试使用Interop.Excell将Excel工作簿保存为PDF文件。 我正在使用VS2008和Office2007,并已经下载并安装了Microsoft的SaveAsPDFandXPS.exe。 这使我能够使用下面的代码保存一个PDF文档作为pdf:object frmt = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF; wrd.ActiveDocument.SaveAs(ref dest,ref frmt,ref unknown,ref unknown,…整个互操作性的事情非常酷的excpet。 无论如何,我一直在为Word.WdSaveFormat.wdFormatPDF在Interop.Excell中寻找一个平行线。 Workbook.SaveAs需要一个Interop.Excel.XlFileFormat,但没有PDF格式的选项。 有没有人做过这方面的工作?

不能将types“对象”隐式转换为“Microsoft.Office.Interop.Excel.Worksheet”。 存在明确的转换(您是否缺less演员?)

在这里我打开excel并写入excel表单。 我正在改变我的Windows应用程序到ASP网站,看到这个错误。 我已经添加了所有的参考和库。 不知道我在这里错过了什么。 获得如下所述的错误。 请帮帮我。 Excel.Application excel = new Excel.Application(); excel.Visible = false; // to hide the processing Excel.Workbook wb = excel.Workbooks.Add(); Excel.Worksheet sh = wb.Sheets.Add(); // Error at wb sh.Name = "Links"; for (int i = 1; i < list.Count; i++) { sh.Cells[i.ToString(), "A"].Value2 = list[i]; //Error at .Value2 }