my app interacts with excel. im running office2007 on my dev machine but the target machine running office2010.i had this problem before where i had to remove office12, install 11 and recompile the project to get it to work on the clients machine, adding multiple references didn't help. is there a work around, or a library that works with any excel version.
I try to develop a automation-add-in for Excel which can get some data from our SQL DB. So i call my add from an Excel-cell.. like "=getThisFromDb()"... This works totally fine! But what if i want to write to another cell then just give a return value? I managed to get the running instance of excel. I can read from it. I can open a new document in it and write to it. ->> But can't write to the Worksheet that called me!!
I have an issue which has successfully busted my head all weekend. I created a COMAdd-in, in VB.NET (VS 2008) for Excel 2003. We now need to work the solution out for 2007 and since the layout and objects are a little different we had to make some critical Interface changes.Instead of a floating CommandBar we are now going with RibbonBar, which looks good but it doesn't work. Whenever I open Excel Workbook (which is the primary application). The Add-in successfully recognizes it and opens it up properly (bunch of Macro calls, layout settings etc). Anyway, after it opens, if I click on any button (on the new ribbon tab) I get "Application not properly initialize. Program will now close" and excel object is lost.
I'm calling the following method from a button click event to export a datatable to excel. After the export is completed, the excel application object is quit, released and assigned to nothing. But in reality it's not getting released and stays active unless the entire application is closed. So every time the button is clicked for export, a new excel application object keeps on running. The problem doesn't occur if two of the lines from the method below are not used. But I can't omit them as they are really needed. Check the * marked lines.
Code: ''' <summary> ''' Exports data from a datatable to excel. ''' </summary>
I am developing an application using excel automation.The worst thing is the client's side doesn't have excel installed.What is the solution for this case?
I have written an automation addin in Excel with C# (addin.dll). To use the addin, I need to 1. register it using "regasm /codebase c:...addin.dll"2. select in ExcelOptionsAddInsExcel AddinsAutomation the respective addin from the list
I would like to automatize 1) and 2), so that the user just needs to run an exe-file in order to use the addin. 1) should be no problem, but how can one automatize 2)?
Ok basically what I need to do is the following:Read FirstExcelDoc (attached)For every row in that: Retrieve data from sql server db based on info in the Orange columns of FirstExcelDoc Let's say I retrieved data elements A, B, C, D, and E from sql server. Then I need to enter those same data elements A, B, and C in another excel spreadsheet (which has formulas etc) After inputing A, B, and C in that spreadsheet, read a couple of calculated fields and compare those results to data elements D and E retrieved originally from SQL Server DB. Finally, output the results in the Blue columns of the FirstExcelDoc spreadsheet for that row.Loop through and do the same thing for row 2 of the FirstExcelDoc and keep on until you see "END TEST" in the FirstExcelDoc.
I'm looking for a method of doing this efficiently. I have read several articles over the past few days as well as those from Mike R. but just need some direction to get started on this.To start of I'm looking for whether to read the entire FirstExcelDoc spreadsheet or just read the info for first policy number(2nd row) and process it and write out the blue column info for that row and then loop through and come back and read the second policy number (3rd row) etc... Please attach a code snippet for either way of reading the data.
I'm using excel via interop in application.Sometimes users kill application that created excel instance and that results in excel instance sitting in memory without any chance of disposing it.First I tried to tackle this using ROT(running object table) looks like not all instances of excel are registered there.Than I tried to somehow mark excel process after it is started via interop.[code]This works as long as excel is visible but in my case excel window is invisible.All I need is to somehow mark process that started via automation with the parent PID, so that later I can kill it if parent does not exist.
We have a vb program which is run on our server by scheduled task every day. The program opens about 30 excel files, refreshes the data connections, pivot tables and then saves the document in another location.
This may run fine for a couple days but sooner or later the process starts crashing, usually with this error: RPC_E_SERVERFAULT.
My question is, Is it expected that continually opening/closing/refreshing workbooks will inevitably cause the Excel object to crash at some point.
I'm having an issue where my excel.exe process doesn't close until I close my .net application. I'd like to avoid using Process.Kill() if at all possible.
Code:
Private Sub WriteRowsToXls(ByVal rows As DataRowCollection, ByVal xlsPath As String, ByVal showStatus As Boolean, Optional ByVal AddTotals As Boolean = True) Dim xlsApp As New Microsoft.Office.Interop.Excel.Application
[CODE]............
This method references a couple of other methods I use for repeated formatting tasks, I'll include those methods below. (I added the FinalReleaseComObject into the other methods after reading Mike's thread but the issue persists)
Code: Private Sub SetRangeValidation(ByVal rng As Range) With rng.Validation .Delete()
[CODE]..............
Method SetRangeAllBorders does about the same as these other methods but my post is too long to add it. The only other things not shown in these code snippets are a few string variable that are defined in the class, studentWS, studentsWSPW, paymentsWS and paymentsWSPW My App creates an instance of the class, loads some data, runs the method above, and then sets the class to nothing. I'm using .NET 3.5 automating Excel 10
I have been doing a lot of reading on this topic and most folks seem to agree that having Excel is required to use the COM Interop libraries. However they are never specific as to where that should be installed. Does it need to be installed on the machine I am developing on or does it need to be on every machine that I deploy to?
Edit: I should mention that this is desktop development/deployment targeted for all Windows machines.
I'm trying to upgrade a VB6 app to VB 2008. I have read the article in the tutors corner about automating Excel from VB but I cannot get it to work. Heres what I have done:
1) set a reference to the Microsoft Excel 12.0 Object Library
2) Added "Imports Excel = Microsoft.Office.Interop.Excel" to the top of the module
3) in a routine I have added: Dim X As New Excel.Application Here's where I get an error: Error 75 'Application' is ambiguous in the namespace 'Microsoft.Office.Interop.Excel'.
I am writing a program that loops through all of the sheets in an Excel workbook and saves each sheet as its own workbook. It turned out to be a bit trickier than I expected, since the Sheet.Copy method creates a strange object (see here for the MSDN discussion that I believe is relevant: [URL]. Anyway, I found a Stack Overflow post [URL] that got me to where I am, which is essentially complete, outside of one hanging EXCEL.EXE process that is left after the program completes, which I believe is a result of the sheet.copy method creating a new workbook (potentially a new application as well?). The other thing I run into, which I believe is related to this, is that even though I have my application set to visibility off, when I run the program, excel still opens up and is visible going through the steps.
Now I think the problem comes from the end of the loop, where I try to close the export file and the new worksheet it creates:
Code: 'close excel and release com objects System.Runtime.InteropServices.Marshal.ReleaseComObject(exportsheet) exportsheet = Nothing xlApp1.Workbooks(fileNames(counter - 1)).Close(False)
I can't figure out what to do to release the `ComObject` for the new worksheet that is created. I have been trying all sorts of things, but it always throws a COM error when I do it and if I try to define it as nothing (like I do with exportsheet) is says that it is read only by default, so I can't do it. It seems like it should be something as simple as: System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp1.Workboo ks(fileNames(counter - 1))) But that is not the case. I have tried a few variants of this and I am thinking it has to do with the MSDN link above, but I can't quite sort out what to do. So the code works for my purposes, outside of leaving one EXCEL.EXE after it is done. As far as a test file, I am just using an Excel file with 3 sheets and I put some information on each and change the sheet name, so it is easy to see if it is working or not.
Dim exlapp As New Microsoft.Office.Interop.Excel.Application Dim xlWorkBook_new As Microsoft.Office.Interop.Excel.Workbook Dim strOriginal As String strOriginal = Server.MapPath(Request.ApplicationPath & "/Attachments/") & "abc.xls" xlWorkBook_new = exlapp.Workbooks.Open(strOriginal)
The code hangs in the last line. It works fine in the development environment. i deployed in windows server 2000 ,where I get this issue. the browser goes half way and throws the below exception after some time
[Code]...
I have set the identity impersonate to true in web config. This should be mostly an access rights issue.I have even provided access rights for the "everyone " user in the excel file and as well for the interop component. Please post ur valuable comments.
We have a VB 2005 program that reads data from a database and builds an Excel output file to be emailed. This works fine from my computer but when we put it on the server it fails on the Excel functionality.
The error is: Unhandled Exception: System.Runtim.InteropServices.COMException
Although Excel is not installed on the server we did also build a Setup program to install our program. It copies the Microsoft.Office.Interop.Excell.dll to the server folder with the exe.I thought the setup program should register the Excel DLL and the program should work even if the server does not have Office or Excel installed.
I just finished coding a small app which access the Outlook 2007 Inbox. On my dev machine, it works OK. I created a new machine in VMWare using WinXP, Dot.Net 3.5 and Office 2007 installed and Outlook configured to my GMail account.I copied the BIN folder of my project to the new machine and ran the app and it runs OK until it scans all emails in the Inbox. This is where I get the exception:[code]When JIT debugging is enabled, any unhandled exceptionwill be sent to the JIT debugger registered on the computerrather than be handled by this dialog box.Can anyone suggest why my code can not see the Outlook 12 assembly? Do I have to create an installer file for my app before copying it to the test machine?
I am an end user of a VB based program and our windows 95 based machines are dying of old age. Before getting my boss to agree to my trying out a newer machine I would like to know if there is any chance of getting this program to run.
I know that I need to be able to drive 3 serial (485 / 422/ 232) ports one of which is on an ISA bus and the other 2 are located internally on the motherboard. Another factor in trying to do this is the drivers are missing for the 485 card and I hoped to be able to locate newer drivers easier.I think the VB code was created under VB3, but we do not have the expertise / tools to be able to disassemble the .exe file.
Here's the situation - I have a vb.net exe compiled for X86 machines using 2 dll's... Because one of the dll's was only provided in 32 bit, and I didn't want to have to deal with 32/64 versions, I forced 32 bit in compile options and everything was fine. Now I have a 64 bit workstation that is throwing an error about the sqlite.dll (error #1 below).
after reading around I am starting to understand a lot of people are having this issue. I tried replacing the dll on the client machine with the 64 bit version of sqlite and that didn't work (error #2). I read somewhere that the 64 bit version requires VC 2010 redistro, but that didn't work. I can't compile this app as a 64 bit because of the other dll is 32 bit.
I have made an application using VB.NET which is used inhouse. In order to avoid everytime changing of exe on user's (multiple user) machine I want to use shortcut of exe on user's machine.
Where EXE is placed in one central location(Server).
I am getting bellow error on user's machine :
Request for the permission of type 'System.Data.Odbc.OdbcPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
Error after clicking on ok button:
Application attempted to perform not allowed by the security policy.Togrant this application the required permission,contact your system administrator,or use the Microsoft .NET Framework Configuration tool.
I have developed a 32-bit VB.NET application that runs fine on 32-bit systems. Some of the folks in engineering, however, are using 64-bit machines, so we have created 32-bit virtual PCs and installed the application on the Virtual PC. When we try to run it, however, the application fails to establish a connection to the SQL server (remote, SQL 2000) for login validation.
The conditions are I don't have administrator privilege I want to see the status of a service in remote machine (server)I use the following code (vb.net with framework 2.0) to see the status
Dim sqlSvc As ServiceController Svc = New ServiceController(My.Settings.serviceName, My.Settings.machineName) If sqlSvc.Status.ToString.Equals("Running") Then displayStatus("success", sqlSvc.Status.ToString) Else displayStatus("error", sqlSvc.Status.ToString) End If
When running the code, InvalidOperationException is raised and found out that I need admin right in the server.Can I lookup the status of the service without having admin right in remote machine ?
I just want to write code inside my assembly to detect whether it is running on a "desktop machine", or inside the context of an ASP.NET application. This is crucial guys, (licensing purposes), and I don't want to get fired because I did a mistake.So, please, be direct and if you please give me some code snippet.
I have some programs written in VB2010 using functions from a DLL. I have compiled and run these programs on a 32bit XP computer and a 32bit Win7 computer and have had no problems accessing the DLL.I have published an installation of these programs and tried running the install on a 64bit Win7 machine and the installation is performed correctly. It installs the programs and copies the required DLL into the same folder. the problem is that whenever I run the software and try to access the DLL I get errors.
The error says something like:
An unhandled exception has occurred in your application. An attempt was made to load a program with an incorrect format. (Exception from HRESULT:0x8007000B)
If I click past it the software runs and all of the forms are loaded properly, but anytime in the software if I try to access the DLL I get the same error.I am declaring functions in the DLL like this:
Public Declare Function OpenDriver Lib "OP815M.DLL" (ByVal handle_Renamed As Integer) As Integer
I have also tried placing the DLL in the system32 directory and also the sysWOW64 directory and that did not help as well.I do recall that hardware drivers need to be properly signed and pass the Microsoft Logo testing. Must I get the DLLs I am using properly signed?
Edit: Also it might be fair to mention that I have used the DLL with another program written in C, which would run in the DOS command line in Windows and it correctly accesses the DLL on a 64bit machine, but just when run from the DOS command line in windows.
When I execute the code provided, Word 2010 opens and appears visible and then stops with an error: "COMException was unhandled". But if I execute the code line by line (F8), the code runs perfectly, that is Word 2010 opens, it is visible and the template is opened. The error fails (always) on the third line of code. What is going on and how might I fix it? [Code]