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 上有篇文章,
虽然也可以凑合用, 但总觉得CVS出错的可能性更大。
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出错的可能性更大。
相关文章推荐
- DataSet导出到Excel比较完整的解决方案(一)--客户端生成文件(downmoon)
- DataSet导出到Excel比较完整的解决方案(一)--客户端生成文件(downmoon)
- DataSet导出到Excel比较完整的解决方案(一)--客户端生成文件(downmoon)
- DataSet导出到Excel比较完整的解决方案(二)--服务器端生成文件(downmoon)
- DataSet导出到Excel比较完整的解决方案(二)--服务器端生成文件(downmoon)
- DataSet导出到Excel比较完整的解决方案(二)--服务器端生成文件(downmoon)
- DataSet导出到Excel比较完整的解决方案(二)--服务器端生成文件(downmoon)
- DataSet导出到Excel比较完整的解决方案(一)--客户端生成文件
- DataSet导出到Excel比较完整的解决方案(二)--服务器端生成文件
- DataSet导出到Excel比较完整的解决方案
- DataSet导出到Excel比较完整的解决方案
- 从datagrid导出html代码,生成excel文件,给客户端下载
- DataSet导出到Excel,并生成文件(C#实现,可合并行和列)
- 关于poi导出大数据量EXCEL导出缓慢的解决方案--生成xml格式的表格文件(注意xls格式为03 07下格式会不一样)
- PHP导出Excel文件时导出列的数字长度太长时显示不完整或者乱码显示
- 数据导出到excel文件给客户端下载的几种方法
- datagrid数据导出到excel文件给客户端下载的几种方法
- ActiveReports 报表控件 : 导出 PDF、Word 和 Excel文件到客户端
- 在服务器端生成Excel文件后如何提供客户端下载 Response.Redirect()
- asp.net导出Excel文件之方法比较