日期:2014-05-19  浏览次数:20386 次

excel 转换成xml
想在客户端把excel文件转换成xml文件,再上传到服务器端。
在引用excel.dll时出现好多问题。盼有使用经验的能指点一二。或提供更清晰的思路。


protected   Excel.ApplicationClass   xlapp=new     Excel.ApplicationClass();
protected   Excel.Workbook   xlBook=new   Excel.WorkbookClass();
protected   Excel.Worksheet   xlSheet=new   Excel.WorksheetClass();


异常详细信息:   System.Runtime.InteropServices.COMException:   带有   CLSID   {00020819-0000-0000-C000-000000000046}   的   COM   对象无效或未注册。



------解决方案--------------------
楼主是要将里面的数据转换成Excel吗?如果是,那么可以将数据读入到dataset中,然后ds.GetXml()即可得到XML格式数据字串,这样的话,就不需要new Excel.ApplicationClass()……
------解决方案--------------------
同意楼上,用oledb连接excel将数据读到dataset中,然后得到xml 内容.
------解决方案--------------------

正好手头在做这个,给出我的代码,自己改一下:

/// <summary>
/// 将Excel中的数据导入到DataSet中
/// </summary>
/// <param name= "sFileName "> Excel文件名(带路径) </param>
/// <param name= "sSheetName "> Excel文件中工作表名。默认为:Sheet1$ </param>
/// <returns> DataSet ,异常返回 null </returns>
private DataSet GetDataSetFromExcel(string sFileName, string sSheetName)
{
if (sFileName == " ") return null;
if (!File.Exists(sFileName)) return null;

if (string.IsNullOrEmpty(sSheetName)) sSheetName = "Sheet1$ ";
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0; " +
"Data Source= " + sFileName + "; " +
"Extended Properties=Excel 8.0; ";
System.Data.OleDb.OleDbDataAdapter ExcelDA = new System.Data.OleDb.OleDbDataAdapter(string.Format( "SELECT * FROM [{0}] ", sSheetName), strConn);

DataSet ExcelDs = new DataSet();
try
{
ExcelDA.Fill(ExcelDs, "ExcelInfo ");

}
catch (Exception err)
{
throw err;
}
return ExcelDs;
}

然后再使用 dataset的getxml()就可以了。

------解决方案--------------------
lwjvince(Insert into you(memory)values(my all life)) ( ) 信誉:98

Excel.Application app = new Excel.ApplicationClass();
这样都说“已在多处定义Excel.Application ”;使用“c:\.....Excle.dll”。
可就在这一个地方定义了啊。

难道只能写C/S的程序?不用在webform中使用?
---------------
两者在生成EXCEL这个阶段没有区别

你肯定是不小心在别的地方定义了别的app.
我给你的是一段完整的代码,你可以另建一个文件编译一下试试
------解决方案--------------------