今天发现了把DataGrid导出Excel时格式化字符串的方法。
来源:互联网 发布:sql语句括号的用法 编辑:程序博客网 时间:2024/05/17 23:04
在DataBound事件中设置Cell的style属性就可以了。
这是以字符串型式显示的.
e.Item.Cells[0].Attributes.Add("style","vnd.ms-excel.numberformat:@");
如果要格式化的话可以这样:
e.Item.Cells[3].Attributes.Add("style","vnd.ms-excel.numberformat:¥#,###.00");
这是以字符串型式显示的.
e.Item.Cells[0].Attributes.Add("style","vnd.ms-excel.numberformat:@");
如果要格式化的话可以这样:
e.Item.Cells[3].Attributes.Add("style","vnd.ms-excel.numberformat:¥#,###.00");
另外,如果DG中有控件的话会提示:“DataGrid1__ctl2__ctl0”必须放在具有 runat=server 的窗体标记内
这样的错误,因此在导出前应该把相关的列给隐藏起来。我是这样做的。
================= ================== ================== ======
DisableControlColumns返回包括控件的列。
然后在导出时隐藏这些列,然后导出后还原。
这样的错误,因此在导出前应该把相关的列给隐藏起来。我是这样做的。
private void btnExportExcel_Click(object sender, System.EventArgs e)
...{
this.Page.Response.Clear();
this.Page.Response.AddHeader("content-disposition", "attachment;filename=excel.xls");
this.Page.Response.Charset = "";
//this.Page.Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
this.Page.Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);
IList il = DisableControlColumns();
this.DataGrid1.RenderControl(htmlWrite);
ShowControlColumns(il);
//stringWrite.WriteLine("<style>.text { mso-number-format:/@; } </style>");
this.Page.Response.Write(stringWrite.ToString());
this.Page.Response.End();
}
private IList DisableControlColumns()
...{
IList result = new ArrayList();
if (this.DataGrid1.Items.Count==0)
return result;
for (int i=0;i<this.DataGrid1.Columns.Count;i++)
...{
if (this.DataGrid1.Columns[i] is System.Web.UI.WebControls.ButtonColumn)
...{
this.DataGrid1.Columns[i].Visible = false;
result.Add(this.DataGrid1.Columns[i]);
continue;
}
if (this.DataGrid1.Columns[i] is System.Web.UI.WebControls.TemplateColumn)
...{
for (int j =0 ;j<this.DataGrid1.Items[0].Controls[i].Controls.Count;j++)
...{
if ( this.DataGrid1.Items[0].Controls[i].Controls[j] is System.Web.UI.WebControls.WebControl)
...{
this.DataGrid1.Columns[i].Visible = false;
result.Add(this.DataGrid1.Columns[i]);
continue;
}
}
}
}
return result;
}
private void ShowControlColumns(IList il)
...{
foreach (System.Web.UI.WebControls.DataGridColumn dgc in il)
...{
dgc.Visible = true;
}
}
...{
this.Page.Response.Clear();
this.Page.Response.AddHeader("content-disposition", "attachment;filename=excel.xls");
this.Page.Response.Charset = "";
//this.Page.Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
this.Page.Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);
IList il = DisableControlColumns();
this.DataGrid1.RenderControl(htmlWrite);
ShowControlColumns(il);
//stringWrite.WriteLine("<style>.text { mso-number-format:/@; } </style>");
this.Page.Response.Write(stringWrite.ToString());
this.Page.Response.End();
}
private IList DisableControlColumns()
...{
IList result = new ArrayList();
if (this.DataGrid1.Items.Count==0)
return result;
for (int i=0;i<this.DataGrid1.Columns.Count;i++)
...{
if (this.DataGrid1.Columns[i] is System.Web.UI.WebControls.ButtonColumn)
...{
this.DataGrid1.Columns[i].Visible = false;
result.Add(this.DataGrid1.Columns[i]);
continue;
}
if (this.DataGrid1.Columns[i] is System.Web.UI.WebControls.TemplateColumn)
...{
for (int j =0 ;j<this.DataGrid1.Items[0].Controls[i].Controls.Count;j++)
...{
if ( this.DataGrid1.Items[0].Controls[i].Controls[j] is System.Web.UI.WebControls.WebControl)
...{
this.DataGrid1.Columns[i].Visible = false;
result.Add(this.DataGrid1.Columns[i]);
continue;
}
}
}
}
return result;
}
private void ShowControlColumns(IList il)
...{
foreach (System.Web.UI.WebControls.DataGridColumn dgc in il)
...{
dgc.Visible = true;
}
}
=================
DisableControlColumns返回包括控件的列。
然后在导出时隐藏这些列,然后导出后还原。
- 今天发现了把DataGrid导出Excel时格式化字符串的方法。
- DATAGRID 导出EXCEL的方法
- 把DataGrid导出到excel
- DataGrid导出EXCEL方法
- DataGrid导出EXCEL的几个方法
- Flex把datagrid的内容导出到Excel
- flex 把datagrid的内容导出到Excel
- DataGrid 导出Excel通用方法
- 如何把DataGrid内容导出到Excel
- 今天发现了WinHex的一个有趣汉化方法
- winform从datagrid导出到excel单表的方法
- 将DataGrid中的数据导出为Excel的方法
- Datagrid数据导出到excel文件的三种方法
- Datagrid数据导出到excel文件的三种方法
- Datagrid数据导出到excel文件的三种方法
- 今天把自己的联想手机修了一下,居然还发现了一个小bug
- silverlight datagrid/grid导出到excel 方法
- 导出datagrid中数据到Excel方法
- Gif图片在提交时,在IE中不能正常工作
- win2003解决IIS限制上传文件的大小
- 失望!Boost1.32的FileSystem居然是基于string的!
- 失败
- Debug和Release之本质区别
- 今天发现了把DataGrid导出Excel时格式化字符串的方法。
- 第九部分 程序流控制---------------
- 请问!急啊!抓取视频中的图片以后,如何显示在对话框上?
- 基于职能的权限设计——数据库“龙”式权限设计模式
- C# 对XML文件的操作代码,与大家一起分享
- 抓取百度搜索结果——解密百度狗
- 测试我的博客
- 【程序思考】RIA 编程:将 View 从 MVC 框架中移走
- datagridview一次修改多条记录