利用模板导出数据到Excel中
来源:互联网 发布:英国 欧洲大陆 知乎 编辑:程序博客网 时间:2024/06/04 19:38
可以自定义模板,使用挺方便的。
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Reflection; //-------------------------------------------------------------需要添加引用 -!!!!-----------------
//------------------------------------需要添加 Microsoft.Office.Interop.Excel引用 。-----------------
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//if (!IsPostBack)
{
GV1.DataSource = madeData();
GV1.DataBind();
}
}
//生成DataView的数据源。
protected DataTable madeData()
{
DataTable dt = new DataTable();
dt.Columns.Add("姓名",typeof(string));
dt.Columns.Add("学号", typeof(string));
DataRow dr = dt.NewRow();
dr["姓名"] = "张三";
dr["学号"] = "20110101";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["姓名"] = "李四";
dr["学号"] = "20110102";
dt.Rows.Add(dr);
return dt;
}
protected void Button1_Click(object sender, EventArgs e)
{
//需要添加 Microsoft.Office.Interop.Excel引用 。----------------------------------------------------------!!!!!!!
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
if (app == null)
{
Response.Write("服务器上缺少Excel组件,需要安装Office软件。");
return;
}
app.Visible = false;
app.UserControl = true;
Microsoft.Office.Interop.Excel.Workbooks workbooks = app.Workbooks;
Microsoft.Office.Interop.Excel._Workbook workbook = workbooks.Add(Server.MapPath("~/ExcelTemplet/Info.xlsx")); //加载模板
Microsoft.Office.Interop.Excel.Sheets sheets = workbook.Sheets;
Microsoft.Office.Interop.Excel._Worksheet worksheet = (Microsoft.Office.Interop.Excel._Worksheet)sheets.get_Item(1); //第一个工作薄。
if (worksheet == null)
return; //工作薄中没有工作表.
//1、获取数据。
DataTable dt = (DataTable)GV1.DataSource; //--------------------------------------------------根据实际需要修改--------------!!!!!
int rowCount = dt.Rows.Count;
if (rowCount < 1)
return; //没有数据,不需要导出。
//2、写入数据,Excel索引从1开始。
for( int i=1; i<=rowCount; i++)
{
int row_ = 2 + i; //Excel模板上表头和标题行占了2行。---------------------------------------根据实际模板需要修改------------------!!!!
int dt_row = i - 1; //dataTable的行是从0开始的。
//worksheet.Cells[excelRow, 1] = dt.Rows[i]["姓名"].ToString();
worksheet.Cells[row_, 1] = i.ToString();
worksheet.Cells[row_, 2] = dt.Rows[dt_row]["姓名"].ToString();
worksheet.Cells[row_, 3] = dt.Rows[dt_row]["学号"].ToString();
}
//调整Excel的样式。
Microsoft.Office.Interop.Excel.Range rg = worksheet.Cells.get_Range("A3",worksheet.Cells[rowCount+2,8]);
rg.Borders.LineStyle = 1; //单元格加边框。
worksheet.Columns.AutoFit(); //自动调整列宽。
//3、保存生成的Excel文件。
//Missing 在System.Reflection命名空间下。
string savaPath = "~/ExcelTemplet/Temp/T1_"+DateTime.Now.ToString("yyyyMMddHHmmss")+".xlsx";
workbook.SaveAs(Server.MapPath(savaPath), Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
//4、按顺序释放资源。
NAR(worksheet);
NAR(sheets);
NAR(workbook);
NAR(workbooks);
app.Quit();
NAR(app);
Response.Redirect(savaPath);
}
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(o);
}
catch
{ }
finally
{
o = null;
}
}
}
- 利用模板导出数据到Excel中
- C# 导出数据到Excel模板中
- 利用POI将数据导出到EXCEL模板
- java中使用poi导出数据到EXCEL模板中。
- asp.net中利用NPOI导出数据到excel中
- c# 导出table中的数据到模板excel中
- java 导出数据到指定的excel模板中。
- struts2导出数据到excel中方法(模板方法)
- 利用POI技术导出数据到Excel中
- 导出数据到excel中
- 导出数据到Excel中
- 导出数据到Excel中
- C#导出Excel|导出数据到Excel模板文件里
- 利用PHPExcel导出数据到excel
- java利用poi导出数据到excel
- 利用PHPExcel导出数据到excel
- 利用poi数据导出到excel demo
- C# 实现Excel导出 加载模板 导入数据到模板
- 应用层通过CreateFile函数调用驱动产生代号为123的错误修正方法
- NSDictionary / NSMutableDictionary 及 NSArray / NSmutableArray (实例)
- test
- 解决TCP网络传输“粘包”问题
- PowerPC 体系结构之存储管理
- 利用模板导出数据到Excel中
- asp.net从客户端中检测到有潜在危险的Request.Form值
- 第一个项目 四位数码管时钟
- private,static,final,abstratr区别
- 谁能帮我看看这段jsp代码中的问题
- (详细)window 7 用户硬盘安装ubuntu-10.04-desktop
- AOP(Aspect-Oriented Programming)
- 感想2012-3-31
- Round-Robin负载均衡算法及其实现原理