导出excel表格
一.
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表格的更多相关文章
- PHP导入导出excel表格图片(转)
写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了.呵呵.(COM方式不讲了,这种可读的太多了,我也写过利用wp ...
- java中使用jxl导出Excel表格详细通用步骤
该方法一般接收两个参数,response和要导出的表格内容的list. 一般我们将数据库的数据查询出来在页面进行展示,根据用户需求,可能需要对页面数据进行导出. 此时只要将展示之前查询所得的数据放入s ...
- .NET环境下导出Excel表格的两种方式和导入两种类型的Excel表格
一.导出Excel表格的两种方式,其中两种方式指的是导出XML数据类型的Excel(即保存的时候可以只需要修改扩展名为.xls)和真正的Excel这两种. using System; using Sy ...
- java导出excel表格
java导出excel表格: 1.导入jar包 <dependency> <groupId>org.apache.poi</groupId> <artifac ...
- 使用NPOI将数据库里信息导出Excel表格并提示用户下载
使用NPOI进行导出Excel表格大家基本都会,我在网上却很少找到导出Excel表格并提示下载的 简单的代码如下 //mvc项目可以传多个id以逗号相隔的字符串 public ActionResult ...
- VB.NET版机房收费系统---导出Excel表格
datagridview,翻译成中文的意思是数据表格显示,使用DataGridView控件,能够显示和编辑来自不同类型的数据源的表格,将数据绑定到DataGridView控件很easy和直观,大多数情 ...
- C#导出Excel表格方法
using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using NPOI.SS.Formula.Functions; using System.Re ...
- Java代码导入导出 Excel 表格最简单的方法
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStrea ...
- js导出Excel表格
js导出Excel表格 直接上代码: 红色部分:如果表格数据中有“1/1”这样的值,会在导出的Excel中转化为日期“1月1日”,所以才加上了红色那两句.如果返回值中没有这样的格式,红色部分可以不写. ...
- Spring Boot 导出Excel表格
Spring Boot 导出Excel表格 添加支持 <!--添加导入/出表格依赖--> <dependency> <groupId>org.apache.poi& ...
随机推荐
- Helpers\TableBuilder
Helpers\TableBuilder Table builder helper is a class that would help you to create tables in MySQL ( ...
- linux进程后台运行的几种方法
转载:http://hi.baidu.com/ntuxmzvdpzbnuxq/item/79131b93f606a348f0421562 我 们经常会碰到这样的问题,用 telnet/ssh 登录了远 ...
- Debian安装Apache2+MySQL5+PHP5(zz)
转载:http://hi.baidu.com/lostdays/item/1d5e7e4833b4d20fc116134b 终于在Debian用apt-get安装好LAMP了,之前在CentOS使用编 ...
- A very hard Aoshu problem
A very hard Aoshu proble Problem Description Aoshu is very popular among primary school students. It ...
- ASP.NET MVC and jqGrid 学习笔记 3-如何从数据库获得数据
实际应用中,大部分都是从数据库里获得数据,所以先建立一个数据库,Database first 或者Code first都可以,这里用Code first. 一.Model public class M ...
- linux 基本命令 [转]
linux 基本命令 1.ls (list 显示当前目录下文件和目录 ls -l 详细显示 =ll ) [root@linux ~]# ls [-aAdfFhilRS] 目录名称 [root@lin ...
- 2013 南京理工大学邀请赛B题
思路: 每次枚举删除一个点,然后对剩下的点求出关键点,判断删除哪个关键点获得的连通分支数最大. #include<iostream> #include<cstdio> #inc ...
- Volley 源码解析
Volley 源码解析 1. 功能介绍 1.1. Volley Volley 是 Google 推出的 Android 异步网络请求框架和图片加载框架.在 Google I/O 2013 大会上发布. ...
- Android中android-async-http开源网络框架的简单使用
android-async-http开源网络框架是专门针对Android在Apache的基础上构建的异步且基于回调的http client.所有的请求全在UI线程之外发生,而callback发生在创建 ...
- UML——类和对象