/// <summary>
/// 导出功能
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btn_export_Click(object sender, EventArgs e)
{
try
{
string strSql = CreateStrWhere();
DataTable dst = ShDonBLL.GetListForEXport(strSql).Tables[];
if (dst.Rows.Count<=)
{
Jscript.Alert(this, "查询数据为空,没有数据导出,请重新选择条件!");
return;
}
DataTable ds = UpdateDataTable(dst);
for (int i = ; i < ds.Rows.Count; i++)
{
DataColumn dc = ds.Columns[];//i就是第几列或者用列名也可以
dc.DataType = typeof(String);
string eid = ds.Rows[i]["装置名称"].ToString();
string tyid = ds.Rows[i]["类别"].ToString();
if (!string.IsNullOrEmpty(eid))
{
ds.Rows[i]["装置名称"] = GetEqui(eid);
}
if (!string.IsNullOrEmpty(tyid))
{
ds.Rows[i]["类别"] = GetZG(tyid);
}
}
//DataTableExcel(ds,"测试0",""); }
catch (Exception ex)
{ throw ex;
}
}
/// <summary>
/// 修改数据表DataTable某一列的类型和记录值(正确步骤:1.克隆表结构,2.修改列类型,3.修改记录值,4.返回希望的结果)
/// </summary>
/// <param name="argDataTable">数据表DataTable</param>
/// <returns>数据表DataTable</returns> private DataTable UpdateDataTable(DataTable argDataTable)
{
DataTable dtResult = new DataTable();
//克隆表结构
dtResult = argDataTable.Clone();
foreach (DataColumn col in dtResult.Columns)
{
if (col.ColumnName == "装置名称" || col.ColumnName == "类别")
{
//修改列类型
col.DataType = typeof(String);
}
}
foreach (DataRow row in argDataTable.Rows)
{
DataRow rowNew = dtResult.NewRow();
rowNew["序号"] = row["序号"];
rowNew["装置名称"] = row["装置名称"];
rowNew["停工时间"] = row["停工时间"];
rowNew["开工时间"] = row["开工时间"];
rowNew["正常时间"] = row["正常时间"];
rowNew["停工原因"] = row["停工原因"];
rowNew["类别"] = row["类别"];
rowNew["停工时间小时"] = row["停工时间小时"];
rowNew["年度"] = row["年度"];
dtResult.Rows.Add(rowNew);
}
return dtResult;
} #region DataTable导出到Excel
/// <summary>
/// DataTable导出到Excel
/// </summary>
/// <param name="pData">DataTable</param>
/// <param name="pFileName">导出文件名</param>
/// <param name="pHeader">导出标题以|分割</param>
public static void DataTableExcel(System.Data.DataTable pData, string pFileName, string pHeader)
{
System.Web.UI.WebControls.DataGrid dgExport = null;
// 当前对话
System.Web.HttpContext curContext = System.Web.HttpContext.Current;
// IO用于导出并返回excel文件
System.IO.StringWriter strWriter = null;
System.Web.UI.HtmlTextWriter htmlWriter = null;
if (pData != null)
{
string UserAgent = curContext.Request.ServerVariables["http_user_agent"].ToLower();
if (UserAgent.IndexOf("firefox") == -)//火狐浏览器
pFileName = HttpUtility.UrlEncode(pFileName, System.Text.Encoding.UTF8);
curContext.Response.AddHeader("Content-Disposition", "attachment; filename=" + pFileName + ".xls");
curContext.Response.ContentType = "application/vnd.ms-excel";
strWriter = new System.IO.StringWriter();
htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);
// 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid
dgExport = new System.Web.UI.WebControls.DataGrid();
dgExport.DataSource = pData.DefaultView;
dgExport.AllowPaging = false;
dgExport.ShowHeader = true;//显示标题
dgExport.DataBind();
string[] arrHeader = pHeader.Split('|');
string strHeader = "<table border=\"1\" style=\"background-color:Gray;font-weight:bold;\"><tr>";
foreach (string j in arrHeader)
{
strHeader += "<td>" + j.ToString() + "</td>";
}
strHeader += "</tr></table>";
// 返回客户端
dgExport.RenderControl(htmlWriter);
string strMeta = "<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=UTF-8\"/>";
curContext.Response.Write(strMeta + strHeader + strWriter.ToString());
curContext.Response.End();
}
}

最新文章

  1. SSD果然劲爆!
  2. 关于java“配置环境变量”的那些事
  3. HDU 1142 A Walk Through the Forest (记忆化搜索 最短路)
  4. POJ2676Sudoku
  5. Eclipse和debug的一些快捷键
  6. BootstrapTable(附源码) Bootstrap结合BootstrapTable的使用,分为两种模试显示列表。
  7. 会话跟踪技术之——cookie
  8. iOS开发基础-Plist实现嵌套模型
  9. 关于memset赋值问题
  10. Thread(生产者和消费者) wait、notify、notifyAll
  11. python2与python3中除法的区别
  12. ThinkPHP 模型方法 setInc() 和 setDec() 使用详解
  13. 网络服务器搭建的那些事(PV QPS Throughput) 转载
  14. 20145327 《Java程序设计》第四周学习总结
  15. 解决 sourcetree git ssh私钥问题
  16. ORA-00372此时无法修改文件5 ORA-01110数据文件5&#39;M:\WWFDATA.dbf&#39;
  17. 【Spring实战】—— 13 AspectJ注解切面
  18. 用cocos2d-html5做的消除类游戏《英雄爱消除》(1)——系统主菜单
  19. 利用java mail发送邮件
  20. Java学习5之接口

热门文章

  1. 如何制作u盘启动盘
  2. Remove Linked List Elements
  3. Git 常用几个操作
  4. CLR内存管理
  5. Hibernate关联关系配置(一对多、一对一和多对多)
  6. line-height,vertical-align及图片居中对齐问题根源解析
  7. 【转载】关于initrd.image的处理
  8. 移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题
  9. memcache(一)概述
  10. SVM=LASSO?