思路:和word红头文件一样,采用xml格式的模板文件,再替换模板中设置好的标签就可以了.
参考网址:http://www.cnblogs.com/tzy080112/p/3413938.html
public partial class ImportExcel : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ } protected void btnImport_Click(object sender, EventArgs e)
{
byte[] bytes = GetData(Server.MapPath(@"ExcelTemplate\TpExcel.xml"), ""); //实现下载
Response.AddHeader("Content-Type", "application/octet-stream");
Response.Buffer = true;
Response.ContentType = "*/*";
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("导出的文件.xls", System.Text.Encoding.UTF8));
Response.AddHeader("Content-Length", bytes.Length.ToString());
Response.BinaryWrite(bytes);
Response.End(); } public List<MyUser> LoadUser()
{
List<MyUser> li = new List<MyUser>();
MyUser u1 = new MyUser();
u1.Name = "snow";
u1.StaffNo = "1234";
MyUser u2 = new MyUser();
u2.Name = "张山";
u2.StaffNo = "200000";
li.Add(u1);
li.Add(u2);
return li;
} public byte[] GetData(string path, string tempName)
{
//实例化内存流
MemoryStream fileStream = new MemoryStream();
//写文件流
StreamWriter fileWriter = new StreamWriter(fileStream);
//读文件流
StreamReader fileReader = new StreamReader(path, System.Text.Encoding.UTF8);
//读取整个文件的内容
string tempStr = fileReader.ReadToEnd();
//得到要导出的信息
//DataTable dt = airport.GetDataView();
List<MyUser> li = this.LoadUser(); //定义变量获取表的数据行数
int rows = 0;
//定义StringBuilder变量来存储字符串
StringBuilder sb = new StringBuilder();
//判断表是否有数据 if (li.Count > 0)
{
//给变量赋值
rows = li.Count;
int num = rows + 1;//此处1表示模板中表头的行数,且默认为1,可自行增加表头并定义
if (tempStr.IndexOf("+#RowCount#+") > 0)
{
tempStr = tempStr.Replace("+#RowCount#+", "" + num + "");
}
//开始循环生成标准字符串
for (int i = 0; i < rows; i++)
{
sb.Append("<Row>\n"
+ "<Cell><Data ss:Type=\"String\">" + li[i].Name + "</Data></Cell>\n"
+ "<Cell><Data ss:Type=\"String\">" + li[i].StaffNo + "</Data></Cell>\n"
+ "</Row>\n");
}
if (tempStr.IndexOf("+#TableData#+") > 0)
{
tempStr = tempStr.Replace("+#TableData#+", sb.ToString());
}
}
fileWriter.WriteLine(tempStr);
fileWriter.Flush(); byte[] bytes = fileStream.ToArray(); fileStream.Close();
fileWriter.Close();
fileReader.Close(); return bytes;
}
} public class MyUser
{
public string Name
{
get;
set;
} public string StaffNo
{
get;
set;
}
}

asp.net 将数据导成Excel文件的更多相关文章

  1. sqlserver将数据库的数据导成excel文档方法

    sqlserver将数据库的数据导成excel文档方法 最近公司需要下载uniport的数据跟之前的数据进行对比,所以避免不了需要将数据库的数据导出来,把SQLServer表中的数据导出为Excel文 ...

  2. Pl/sql 如何将oracle的表数据导出成excel文件?

    oracle将表数据导出成excel文件的方法 1)在SQL窗体上,查询需要导出的数据 --查询数据条件-- ; 结果视图 2)在查询结果的空白处,右键选择Copy to Excel 3) 查看导出e ...

  3. mysql中数据导出成excel文件语句

    代码如下 复制代码 mysql>select * from xi_table into outfile ’d:test.xls’; 导出为txt文件:  代码如下 复制代码 select * f ...

  4. Asp.Net MVC 实现将Easy-UI展示数据下载为Excel 文件

    在一个项目中,需要做一个将Easy-UI界面展示数据下载为Excel文件的功能,经过一段时间努力,完成了一个小Demo.界面如下: 但按下导出Excel后,Excel文件将会下载到本地,在office ...

  5. 用node.js写一个简单爬虫,并将数据导出为 excel 文件

    引子 最近折腾node,最开始像无头苍蝇一样到处找资料,然而多数没什么卵用,都在瞎比比.在一阵瞎搞后,我来分享一下初步学习node的三个过程: 1 撸一遍NODE入门,对其有个基本的了解: 2 撸一遍 ...

  6. 【Java/JDBC】借助ResultSetMetaData,从数据库表中抽取字段信息存成Excel文件

    本例工程下载:https://files.cnblogs.com/files/xiandedanteng/FindNotnullColumns20191102-3.rar 工作中曾有个为42张表建立测 ...

  7. 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转

    效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载])    本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较   ...

  8. 使用宏批量将多个csv文件转成excel文件

    在一个压缩文件中有100多个csv文件,要求要将此100多个csv文件转成excel文件,名字命名不变,有三种方式: 1. 傻不拉几的复制粘贴法 2. 一个一个打开csv文件,另存为xls文件,工作量 ...

  9. 数据导出至Excel文件--好库编程网http://code1.okbase.net/codefile/SerializeHelper.cs_2012122018724_118.htm

    using System; using System.IO; using System.Data; using System.Collections; using System.Data.OleDb; ...

随机推荐

  1. spring 事务回滚。

    在平时的业务难免会遇到 sql异常. 有些业务会涉及 一个方法多个操作例如 dao.update() 1 dao.save(); 2 如果1正常,2不正常.默认是不回滚的. 所以在这个地方要手动处理 ...

  2. mongodb的Limit|skip|投影|排序|消除重复

    Limit 方法limit():用于读取指定数量的文档 语法: db.集合名称.find().limit(NUMBER) 参数NUMBER表示要获取文档的条数 如果没有指定参数则显示集合中的所有文档 ...

  3. esxI开启虚拟化

    开启esxi的ssh服务 http://blog.51cto.com/7385147/1891513 6.7通过浏览器登陆开启ssh服务,然后再用Xshell登陆esxi服务器,然后修改内容 开启虚拟 ...

  4. django之block extend标签

    class ExtendsNode(Node): must_be_first = True context_key = 'extends_context' def __init__(self, nod ...

  5. Redis 内存溢出过期策略

    1: 设置内存最大值, 如果该主机只作为 redis 服务器, 无其它比较占用资源的服务, 建议设置为内存的 3/4 大小, 单位 B 2: 设置内存溢出解决策略, 推荐 1-5 任选一种, 不推荐 ...

  6. win8换win7的操作方法

    详细参考UEFI与 Legacy BIOS两种启动模式详解  BIOS的两种引导模式 win8更换win7的方法的两个步骤:    (1).设置BIOS支持Legacy启动,具体目标就是设置secur ...

  7. AIR程序调用本地默认应用程序打开本地文件

    当我用下面语句的时候,可以成功打开桌面文件夹下面的文件: var file:File = File.desktopDirectory.resolvePath("test.jpg") ...

  8. 跟我一起学Python-day1(条件语句以及初识变量)

    通过练习题来学习条件语句 1,使用while循环输出1 2 3 4 5 6    8  9  10 n=1 while n<11: if n=7: pass else: print(n) n=n ...

  9. 批量杀死多个进程 linux kill

    批量杀进程 -| “grep -v grep”是在列出的进程中去除含有关键字“grep”的进程. “cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID,也有使用aw ...

  10. docker之数据卷管理

    转自:https://www.cnblogs.com/jsonhc/p/7777811.html docker之数据卷的备份和还原 1.现在利用镜像创建一个nginx的服务容器,并挂载一个数据卷 [r ...