一.

1.获取数据源
2.DataTable dt = st.Tables[0];
HttpResponse resp; // HTTP响应信息
resp = Page.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); //设置输出流的HTTP字符集
resp.ContentType = "application/vnd.ms-excel"; //设置输出流的HTTP MIME类型
string name = "Message_" + DateTime.Now.ToString("yyyyMMddhhss") + ".xls";
resp.AppendHeader("Content-Disposition", "attachment;filename=" + name); //将HTTP头添加到输出流

// 定义表对象与行对象,同时用DataSet对其值进行初始化
//
dt.Columns.Remove("lyqq");
dt.Columns.Remove("lyhf");
dt.Columns["lyid"].ColumnName = "编号";
dt.Columns["lyname2"].ColumnName = "姓名";
dt.Columns["lymail"].ColumnName = "邮箱";
dt.Columns["lydh"].ColumnName = "电话";
dt.Columns["lydz"].ColumnName = "地址";
dt.Columns["lyname"].ColumnName = "回访时间";
dt.Columns["lyneirong"].ColumnName = "内容";
dt.Columns["lytime"].ColumnName = "时间";
System.IO.StringWriter oSW = new System.IO.StringWriter();
HtmlTextWriter oHW = new HtmlTextWriter(oSW);
DataGrid dg = new DataGrid();
dg.DataSource = dt;
dg.DataBind();
dg.RenderControl(oHW);
resp.Write(oSW.ToString());
resp.Flush();
resp.Close();

二.带图片导出

private void OutExcel2()
{
datalist(); //获取数据
DataTable dt = st.Tables[0];
if (dt != null)
{
#region 操作excel
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
xlWorkBook = new Excel.Application().Workbooks.Add(Type.Missing);
xlWorkBook.Application.Visible = false;
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Sheets[1]; //创建一个工作簿
//设置工作簿里显示的单元格的标题
xlWorkSheet.Cells[1, 1] = "名称";
xlWorkSheet.Cells[1, 2] = "简介";
xlWorkSheet.Cells[1, 3] = "间隔";
xlWorkSheet.Cells[1, 4] = "图片";
//设置宽度
((Excel.Range)xlWorkSheet.Cells[1, 2]).ColumnWidth = 15;
((Excel.Range)xlWorkSheet.Cells[1, 4]).ColumnWidth = 20;//图片的宽度
//列宽自动
// xlWorkSheet.get_Range(xlWorkSheet.Cells[1, 1], xlWorkSheet.Cells[1, columns]).EntireColumn.AutoFit();
// xlWorkSheet.Columns.EntireColumn.AutoFit();//自动适应长度
//设置字体
xlWorkSheet.Cells.Font.Size = 12;
xlWorkSheet.Cells.Rows.RowHeight = 100;
#region 为excel赋值
for (int i = 0; i < dt.Rows.Count; i++)
{
//为单元格赋值。
xlWorkSheet.Cells[i + 2, 1] = dt.Rows[i]["spname"].ToString();
xlWorkSheet.Cells[i + 2, 2] = dt.Rows[i]["spjj"].ToString();
xlWorkSheet.Cells[i + 2, 3] = dt.Rows[i]["spjg"].ToString();

#region
//直接取图片的地址
string filename = Server.MapPath(dt.Rows[i]["sptp"].ToString());
//用下面的方法把图片从数据库里取出来。
//byte[] filedata = (byte[])dtimg.Rows[j]["img"];
//System.IO.MemoryStream ms = new System.IO.MemoryStream(filedata);
//System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
//img.Save(filename);
#endregion
//int rangeindex = i+1;
//string rangename = "D" + rangeindex;
//Excel.Range range = xlWorkSheet.get_Range(rangename, Type.Missing);
//range.Select();
//Excel.Pictures pict = (Excel.Pictures)xlWorkSheet.Pictures(Type.Missing);
//pict.Insert(filename, Type.Missing);

//Left , Top , Width and Height.设置指定位置图片的显示
xlWorkSheet.Shapes.AddPicture(filename, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue,
220, 100 + i * 100, 100, 100);
}
#endregion
#region 保存excel文件
string filePath = Server.MapPath("ReadExcel") + "" + System.DateTime.Now.ToString().Replace(":", "") + ".xls";
xlWorkBook.SaveAs(filePath); //保存
xlWorkBook.Application.Quit(); //关闭 Excel.Workbook
xlWorkSheet = null;
xlWorkBook = null;
GC.Collect();//回收
System.GC.WaitForPendingFinalizers();
#endregion
#endregion
#region 导出到客户端
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.AppendHeader("content-disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("导出", System.Text.Encoding.UTF8) + ".xls");
Response.ContentType = "Application/excel";
Response.WriteFile(filePath);
Response.End();
#endregion
KillProcessexcel("EXCEL");
}
}

#region 杀死进程
private void KillProcessexcel(string processName)
{ //获得进程对象,以用来操作
System.Diagnostics.Process myproc = new System.Diagnostics.Process();
//得到所有打开的进程
try
{
//获得需要杀死的进程名
foreach (Process thisproc in Process.GetProcessesByName(processName))
{ //立即杀死进程
thisproc.Kill();
}
}
catch (Exception Exc)
{
throw new Exception("", Exc);
}
}
#endregion

导出excel表格的更多相关文章

  1. PHP导入导出excel表格图片(转)

    写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了.呵呵.(COM方式不讲了,这种可读的太多了,我也写过利用wp ...

  2. java中使用jxl导出Excel表格详细通用步骤

    该方法一般接收两个参数,response和要导出的表格内容的list. 一般我们将数据库的数据查询出来在页面进行展示,根据用户需求,可能需要对页面数据进行导出. 此时只要将展示之前查询所得的数据放入s ...

  3. .NET环境下导出Excel表格的两种方式和导入两种类型的Excel表格

    一.导出Excel表格的两种方式,其中两种方式指的是导出XML数据类型的Excel(即保存的时候可以只需要修改扩展名为.xls)和真正的Excel这两种. using System; using Sy ...

  4. java导出excel表格

    java导出excel表格: 1.导入jar包 <dependency> <groupId>org.apache.poi</groupId> <artifac ...

  5. 使用NPOI将数据库里信息导出Excel表格并提示用户下载

    使用NPOI进行导出Excel表格大家基本都会,我在网上却很少找到导出Excel表格并提示下载的 简单的代码如下 //mvc项目可以传多个id以逗号相隔的字符串 public ActionResult ...

  6. VB.NET版机房收费系统---导出Excel表格

    datagridview,翻译成中文的意思是数据表格显示,使用DataGridView控件,能够显示和编辑来自不同类型的数据源的表格,将数据绑定到DataGridView控件很easy和直观,大多数情 ...

  7. C#导出Excel表格方法

    using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using NPOI.SS.Formula.Functions; using System.Re ...

  8. Java代码导入导出 Excel 表格最简单的方法

    import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStrea ...

  9. js导出Excel表格

    js导出Excel表格 直接上代码: 红色部分:如果表格数据中有“1/1”这样的值,会在导出的Excel中转化为日期“1月1日”,所以才加上了红色那两句.如果返回值中没有这样的格式,红色部分可以不写. ...

  10. Spring Boot 导出Excel表格

    Spring Boot 导出Excel表格 添加支持 <!--添加导入/出表格依赖--> <dependency> <groupId>org.apache.poi& ...

随机推荐

  1. Jquery-Ajax常用总结

    1.方式一:访问.aspx 客户端: function Del(Id) { if (confirm("确认要删除?")) { $.ajax({ type: "Post&q ...

  2. mybatis0210 mybatis和ehcache缓存框架整合

    .1mybatis和ehcache缓存框架整合 一般不用mybatis来管理缓存而是用其他缓存框架在管理缓存,因为其他缓存框架管理缓存会更加高效,因为别人专业做缓存的而mybatis专业做sql语句的 ...

  3. SQL SERVER中架构的理解

    在sqlserver 2005中,可能大家在工作或学习的时候会经常发现这样一些问题,你使用一个账户在数据库中创建了一张表,却发现你自己创建的表却没有修改和查询的权限,这是一件很郁闷的事情,在sqlse ...

  4. ethtool 在 Linux 中的实现框架和应用

    转载:http://www.ibm.com/developerworks/cn/linux/1304_wangjy_ethtools/index.html?ca=dat- 王 俊元, 软件工程师, I ...

  5. C# 之 将string数组转换到int数组并获取最大最小值

    1.string 数组转换到 int 数组 " }; int[] output = Array.ConvertAll<string, int>(input, delegate(s ...

  6. [Android]自定义dialog

    吃过饭,有没有太写代码的愿望,就开始想今天工作中遇到的问题了. 有一个很有意思的东西就是Dialog,这个是基础的组件: 我们会在一些地方需要自定义弹出窗,可是用popUpWindow太小题大作,用弹 ...

  7. JavaScript的正则表达式使用

    一:遇到问题 今天做项目时,在前台js对身份证号进行验证时,一直达不到预期的效果,我是监控文本域变量, $scope.watch('form.idNo',function(v){ if(!v){ re ...

  8. javaweb学习总结九(xml解析以及调整JVM内存大小)

    一:解析XML文件的两种方式 1:dom,document object model,文档对象模型. 2:sax,simple API for XML. 3:比较dom和sax解析XML文件的优缺点 ...

  9. 如何添加PPA

    什么是PPA? PPA(Personal Package Archive)相当于一个软件仓库,与Windows在网上随意抓取EXE安装包不同,PPA里面的软件都是经过审核的. 如何添加PPA? sud ...

  10. 关于在Eclipse中构建patch开发环境

    git仓库中不能添加空文件夹. 至于为什么git 仓库中不能添加空文件夹,我没有找到具体的原因. 在V2EX上有人说: 我猜是因为git的内部实现,即只对文件做快照决定的吧,另一方面空文件夹确实对源代 ...