tags:

views:

88

answers:

6

I would like to know the options to manipulate the Excel spreadsheets using ASP.NET 2.0 without using Excel object as web server does not have MS Office installed.

+1  A: 

Newer versions of Excel support XML-based spreadsheet files, which should be easy to manipulate.

Microsoft has lately released the full specifications for all Office binay file formats, but implementing those is a total overkill for your needs.

You can use 3rd party conversion tools to convert the Excel files to a format you're comfortable manipulating (assuming it can be converted back to Excel).

M.A. Hanin
THanks for the options but since excel version is prior to 2007 we would not be able to use Open XML and commercial conversion tools cannot be brought due to financial, security constraints.
Hari
@Hari, FYI, Excel 2003 also supports an XML format for spreadsheets, though it probably isn't Open XML.
M.A. Hanin
A: 

I don't know if you have any control over the excel files, but if you have you can save the files as XML. This way you can use XSLT/XPath to retrieve or transform the data inside the Excelml

Jasper
+1  A: 

You can use the Open XML SDK to manipulate Office 2007 documents

Thomas Levesque
The Excel documents would be prior 2007 versions so we would not be able to use this Open XML SDK
Hari
+3  A: 

We use SpreadsheetGear in our application for this same reason. It is a .Net library that can read/write/edit Excel files without having Excel installed on the machine. It is a commercial library though, so you will have to buy it - although you can deploy it royalty free, meaning that you only need licences to develop using it, not for each deployment.

adrianbanks
thanks but any commercial tool is not possible so we would not be able to use this.
Hari
A: 

As all 3 above has said. You can only do it with Office 2007 excel sheets as those are stored as XML data in a zip file.

For older excel versions, you need 3rd party components.

Wolf5
+1  A: 

You can use ADO to read and write to Excel.

strFile = "C:\Docs\TheFile.xls"

Set cn = CreateObject("ADODB.Connection")

With cn
   .Provider = "MSDASQL"
   .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
     "DBQ=" & strFile & "; ReadOnly=False;"
   .Open
End With

strSQL = "SELECT * FROM [Sheet4$]"

Set rs = CreateObject("ADODB.Recordset")
rs.Open strsql, cn, 2, 3

rs.Fields(1)="B"
rs.Fields("Type")="E"
rs.Update

More: http://support.microsoft.com/kb/257819

Remou
thats great. Are there any prerequisites for installing on web server before we can manipulate excel using ADO in absence of MS office installation
Hari
Do we not have to add reference to Microsoft Excel Object Library to get the features for interacting with Excel? In that case without MS office been installed how will a object library be present?
Hari
You only need drivers, and the Jet driver(s) will usually suit. The drivers for Jet are available in most installations of Windows.
Remou
The example shown is VBScript
Remou
Seems a good option, I will try this out.., thanks...
Hari
BTW Excel will happily open .CSV files, you might also like to look at http://stackoverflow.com/questions/440892/how-to-output-an-excel-xls-file-from-classic-asp, which is one of several similar posts.
Remou