导出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& ...
随机推荐
- C语言--enum,typedef enum 枚举类型详解
原文:http://z515256164.blog.163.com/blog/static/32443029201192182854300/ 有改动 C语言详解 - 枚举类型 注:以下全部代码的执行环 ...
- google maps api申请的问题
现在已经改由统一的GOOGLE API控制台进行所有GOOGLE API的管理了. 方法是使用Google帐号登入 https://code.google.com/apis/console. 然后在所 ...
- iOS 数据类型
标签: 数据类型 1.Objective-C数据类型可以分为:基本数据类型.对象数据类型和id类型. 2.基本数据类型有:int.float.double和char类型. 3.对象类型就是类或协议所声 ...
- [转]T4模版引擎之生成数据库实体类
本文转自:http://www.cnblogs.com/lzrabbit/archive/2012/07/18/2597953.html 在通过T4模版引擎之基础入门 对T4有了初步印象后,我们开始实 ...
- [转]利用vertical-align:middle实现在整个页面居中
本文转自:http://www.cnblogs.com/xueming/archive/2012/03/21/VerticalAlign.html 如果想让一个div或一张图片相对于整个页面居中,用v ...
- PHP面向对象:类型提示
PHP是弱类型语言,向方法传递参数时候也不太区分类型.这样的使用会引起很多的问题,PHP开发者认为,这些问题应该是由代码书写者在书写代码时进行检验以避免. 没有类型提示很危险 下面的代码可能会出现问题 ...
- 使用CSS实现一个简单的幻灯片效果
方法一: 简单的CSS代码实现幻灯片效果 方法二: 使用CSS3 Animation来制作幻灯片 方法一: 简单的CSS代码实现幻灯片效果 话不多说,直接上代码 <!DOCTYPE html&g ...
- Git CMD - remote: Manage set of tracked repositories
命令格式 git remote [-v | --verbose] git remote add [-t <branch>] [-m <master>] [-f] [--[no- ...
- boost.ASIO-可能是下一代C++标准的网络库
曾几何时,Boost中有一个Socket库,但后来没有了下文,C++社区一直在翘首盼望一个标准网络库的出现,网络上开源的网络库也有不少,例如Apache Portable Runtime就是比较著名的 ...
- IT技术开发人员35岁之前应该做的十件事
第一,学会本行业所需要的一切知识并有所发展.已故零件大王布鲁丹在他35岁时,已经成为零件行业的领袖,并且组建了年收入达千万美元的海湾与西部工业公司.每个人在年轻时都可能有过彻夜不眠.刻苦攻读,这在20 ...