您的位置:首页 > 其它

DataSet导出到Excel比较完整的解决方案(一)--客户端生成文件(downmoon)

2009-01-16 09:20 507 查看
有一客户需求:

1、要从SQL Server数据库导出并生成Excel ;

2、用户下载对应的Excel并填写上传再导入到SQL server。

费了将近六个小时,故一定要把过程写下来,希望看到此文的朋友少走些不必要的弯路。

首先,想到的是直接导出到客户端,代码如下:

public static void DataSetToExcel(DataSet oDS, HttpResponse Response, string fileName)

<table cellspacing="0" rules="all" border="1" style="border-collapse:collapse;">

<tr>

<td>品名</td><td>最高价格</td><td>最低价格</td><td>平均价格</td><td>计量单位</td><td>备注</td>

</tr><tr>

<td>青菜</td><td> </td><td> </td><td> </td><td>元/公斤</td><td> </td>

</tr><tr>

<td>南瓜</td><td> </td><td> </td><td> </td><td>元/公斤</td><td> </td>

</tr><tr>

<td>瓠子</td><td> </td><td> </td><td> </td><td>元/公斤</td><td> </td>

</tr><tr>

<td>冬春笋</td><td> </td><td> </td><td> </td><td>元/公斤</td><td> </td>

</tr><tr>

<td>雪里蕻</td><td> </td><td> </td><td> </td><td>元/公斤</td><td> </td>

</tr><tr>

<td>樱桃萝卜</td><td> </td><td> </td><td> </td><td>元/公斤</td><td> </td>

</tr><tr>

<td>佛手瓜</td><td> </td><td> </td><td> </td><td>元/公斤</td><td> </td>

</tr><tr>

<td>白菜鼎</td><td> </td><td> </td><td> </td><td>元/公斤</td><td> </td>

</tr><tr>

<td>蒜</td><td> </td><td> </td><td> </td><td>元/公斤</td><td> </td>

</tr><tr>

<td>食用菌</td><td> </td><td> </td><td> </td><td>元/公斤</td><td> </td>

</tr><tr>

<td>黄瓜</td><td> </td><td> </td><td> </td><td>元/公斤</td><td> </td>

</tr>

</table>
原来,就是纯粹的html格式,披了件Excel的外衣。这样用户传上来的文件当然不是标准的Excel格式了!

于是, 想到直接生成xml格式的Excel文档,方法如下 :

public static void ExportToExcel(DataSet source, string fileName)

Response.ContentType = "text/csv";//"application/vnd.ms-excel";

Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName + ".cvs");

生成格式大致如下:

"品名","最高价格","最低价格","平均价格","计量单位","备注"

"青菜","","","","元/公斤",""

"南瓜","","","","元/公斤",""

"瓠子","","","","元/公斤",""

"冬春笋","","","","元/公斤",""

"雪里蕻","","","","元/公斤",""

"樱桃萝卜","","","","元/公斤",""

"佛手瓜","","","","元/公斤",""

"白菜鼎","","","","元/公斤",""

"蒜","","","","元/公斤",""

"食用菌","","","","元/公斤",""

"黄瓜","","","","元/公斤",""

导入到SQL Server时有多种方法:

给出简要代码:

public static DataTable GetDataFromCSV(string filePath,int beginColumn)

public static string PreFilePath=@"c:\Excel\";

public static string strconn = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq="+PreFilePath+";Extensions=asc,csv,tab,txt;";

public static DataSet GetDataSetFromCSV( string filename)

{

{

{

throw ex;

}

}
尝试失败!!

Code Project 上有篇文章,

A Fast CSV Reader

也可以试试。

虽然也可以凑合用, 但总觉得CVS出错的可能性更大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐