ASP.NET导入导出Excel方法大全
本文介绍下,C#实现的可以导出与导入excel的代码一例,有需要的朋友,参考下吧。
C#实现导出与导入excel。
代码1:
复制代码 代码示例:
#region 导出Excel
/// <summary>
/// 导出Excel
/// </summary>
/// <param name="page">请求的页面this</param>
/// <param name="dataTable">导出的数据源</param>
/// <param name="fileName">保存文件名称</param>
/// <returns>布尔值</returns>
public bool ExportExcel(Page page, DataTable dataTable, string fileName)
{
try
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel.numberformat:@";
page.EnableViewState = false;
HttpContext.Current.Response.Charset = "UTF-8";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");//设置输出流为简体中文
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls");
//输出列名
for (int i = 0; i < dataTable.Columns.Count; i++)
HttpContext.Current.Response.Write(dataTable.Columns[i].ColumnName + "\t");
HttpContext.Current.Response.Write("\r\n");
//输出数据
for (int i = 0; i < dataTable.Rows.Count; i++)
{
for (int j = 0; j < dataTable.Columns.Count; j++)
{
HttpContext.Current.Response.Write(dataTable.Rows[i][j].ToString() + "\t");
}
HttpContext.Current.Response.Write("\r\n");
}
//输出当前缓存内容
//HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
return true;
}
catch
{
return false;
}
}
#endregion代码2
代码示例:
#region 导出Excel 自定义格式
/// <summary>
/// 导出Excel
/// 1.文本:vnd.ms-excel.numberformat:@
/// 2.日期:vnd.ms-excel.numberformat:yyyy/mm/dd
/// 3.数字:vnd.ms-excel.numberformat:#,##0.00
/// 4.货币:vnd.ms-excel.numberformat:¥#,##0.00
/// 5.百分比:vnd.ms-excel.numberformat: #0.00%
/// </summary>
/// <param name="fileName"></param>
/// <param name="dt"></param>
/// <returns></returns>
public bool Export(string fileName, DataTable dt)
{
try
{
HttpResponse resp;
resp = System.Web.HttpContext.Current.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls");
resp.AppendHeader("Content-Type", "application/ms-excel");
StringBuilder colHeaders = new StringBuilder();
StringBuilder ls_item = new StringBuilder();
DataRow[] myRow = dt.Select();
int cl = dt.Columns.Count;
colHeaders.Append(" <html><head> \n ");
colHeaders.Append(" <meta http-equiv='Content-Type' content='text/html; charset=gb2312' /> \n ");
colHeaders.Append(" </head> \n ");
colHeaders.Append(" <body> \n ");
colHeaders.Append(" <table border='1'> ");
colHeaders.Append(" <tr> ");
//输出列名
for (int i = 0; i < dt.Columns.Count; i++)
colHeaders.Append("<td style='background-color:#CCCCCC'>" + dt.Columns[i].ColumnName + "</td>");
colHeaders.Append("</tr> ");
resp.Write(colHeaders.ToString());
foreach (DataRow row in myRow)
{
ls_item.Append("<tr>");
for (int i = 0; i < cl; i++)
{
if (i == (cl - 1))
{
ls_item.Append("<td style='vnd.ms-excel.numberformat:@ '>" + row[i].ToString() + "</td>" + "\n");
}
else
{
ls_item.Append("<td style= 'vnd.ms-excel.numberformat:@ '>" + row[i].ToString() + "</td>");
}
}
ls_item.Append("</tr>");
}
ls_item.Append(" </table> \n ");
ls_item.Append(" </body> \n ");
ls_item.Append(" </html>");
resp.Write(ls_item.ToString());
resp.End();
return true;
}
catch
{
return false;
}
}
#endregion
代码3
代码示例:
#region 导入Excel
public string ImportExcel(string[] list, string filePath)
{
string isXls = System.IO.Path.GetExtension(filePath).ToLower(); //System.IO.Path.GetExtension获得文件的扩展名
if (isXls != ".xls")
return "请选择Excel文件导入!";
DataSet ds = ExecleDataSet(filePath); //调用自定义方法
DataRow[] dr = ds.Tables[0].Select(); //定义一个DataRow数组
int rowsnum = ds.Tables[0].Rows.Count;
if (ds.Tables[0].Rows.Count == 0)
return "Excel无数据!";
return "";
}
//OleDB连接读取Excel中数据
public DataSet ExecleDataSet(string filePath)
{
string OleDbConnection = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filePath + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
OleDbConnection conn = new OleDbConnection(OleDbConnection);
conn.Open();
DataSet ds = new DataSet();
OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);
odda.Fill(ds);
conn.Close();
return ds;
}
#endregion- 转载自:http://www.hello-code.com/blog/asp.net/201401/2645.html
ASP.NET导入导出Excel方法大全的更多相关文章
- .NET导入导出Excel方法总结
最近,应项目的需求,需要实现Excel的导入导出功能,对于Web架构的Excel导入导出功能,比较传统的实现方式是: 1)导入Excel:将Excel文件上传到服务器的某一文件夹下,然后在服务端完成E ...
- PHP导入导出Excel方法
看到这篇文章的时候,很是惊讶原作者的耐心,虽然我们在平时用的也 有一些,但没有作者列出来的全,写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xm ...
- c# 导入导出excel方法封装
在很多项目中,都会使用到文件的上传下载等,为了方便,封装了一个帮助类,每次直接拿过来使用就可以了,下面是封装的类和使用方法. using Common.AttributeHelper; using N ...
- PHP导入导出Excel方法小结
基本上导出的文件分为两种: 1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已.修改这种文件后再保存,通常会提示你是否要转换成Excel文件 ...
- ASP.NET常用导出Excel方法汇总
本文转载:http://mattberseth.com/blog/2007/04/export_gridview_to_excel_1.html http://geekswithblogs.net/a ...
- asp.net中导出Excel的方法
一.asp.net中导出Excel的方法: 本文转载 在asp.net中导出Excel有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出 ...
- ASP.NET Core导入导出Excel文件
ASP.NET Core导入导出Excel文件 希望在ASP.NET Core中导入导出Excel文件,在网上搜了一遍,基本都是使用EPPlus插件,EPPlus挺好用,但商用需要授权,各位码友若有好 ...
- ASP.NET Core 导入导出Excel xlsx 文件
ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...
- .Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) 通过MVC控制器导出导入Excel文件(可用于java SSH架构)
.Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) [原文地址] 通过MVC控制器导出导入Excel文件(可用于java SSH架构) public cl ...
随机推荐
- Decrypting OWIN Authentication Ticket
参考:https://long2know.com/2015/05/decrypting-owin-authentication-ticket/ AuthServer产生的Token因为没有制定自定义的 ...
- python学习使用
静态变量:函数执行完不释放的变量 python的类中 __init__相当于构造函数.
- 让vs IIS Express支持本地静态Json文件
根据前辈的解决方案是IIS Express没有配置Json文件的处理程序,只要增加对应配置即可,IIS Express 对应配置文件夹为: “%UserProfile%\Documents\IISEx ...
- Android----- 版本更新和 服务器下载新版本APK并安装
前段时间有朋友问我版本更新的问题,所以来写一篇版本更新和APK下载并安装的博客. 版本更新,几乎在所有的项目中都用的到,一般是这样的流程,当进入APP首页是便会检测版本是否为最新版本,不是则提示你下载 ...
- raid write back / write throught
RAID write back指的是raid控制器能够将写入的数据写入自己的缓存中,并把它们安排到后续再执行,这样做的好处就是不需要等实际写入磁盘再返回,因此写入更快.对于数据库而言,这一点更为重要, ...
- UVA-10054 The Necklace (欧拉回路)
题目大意:有n个珠子,珠子两边的颜色已知,问能否连成一条项链.(两个珠子可以项链当且仅当一个珠子的一边颜色与另一个珠子的另一边颜色相同). 题目分析:欧拉回路.将颜色视作节点,珠子当做边,问题变成了找 ...
- CentOS7 LVM添加硬盘及扩容
一.LVM简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制.LVM将一个或多个磁盘分区(PV)虚拟为一个卷组(VG), ...
- Python 脚本注册为Windows Service
这部分内容就如同标题所讲的,其他的也不说了,直接上代码吧 需要说明的是,此代码在我的Win10 下可以正常使用,而在windows server 2008没有运行成功. 如果出现拒绝访问的错误,请使用 ...
- Ansible 小手册系列 二十(经常遇到的问题)
(1). 怎么为任务设置环境变量? - name: set environment shell: echo $PATH $SOME >> /tmp/a.txt environment: P ...
- Pavilion M4-1016TX 加装固态硬盘(SSD)+UEFI+GPT安装WIN8.1
折腾了一天,终于将电脑加上SSD和装上系统,记录下,方便后面忘记使用. 步骤: 1.Pavilion M4-1016TX内置了mSata的接口,大小是全高的.ssd支持大小官方说法是测试过32g的,目 ...