怎样在将GridView数据导出到Excel时,指定列导出?

雨打青衫 2008-11-01 09:56:38
怎样在将GridView数据导出到Excel时,导出自己需要的列?
...全文
1621 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
怎样导出图片
  • 打赏
  • 举报
回复
导出图片的会不会
wyp19870608 2011-05-26
  • 打赏
  • 举报
回复
为什么我一导出,就提示我下载我的那个页面,而不是导出EXCEL?请高手指教
sarsmir3 2010-07-12
  • 打赏
  • 举报
回复
顶一下
8818 2010-05-28
  • 打赏
  • 举报
回复
看看!!!!!!!!!!!!!!!!1
荷包蛋他娘 2010-05-07
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 s79950457 的回复:]
我正要找这个东西
[/Quote]
me 2
S79950457 2010-04-10
  • 打赏
  • 举报
回复
我正要找这个东西
雨打青衫 2008-11-03
  • 打赏
  • 举报
回复
问题解决,马上加分结贴!!!
  • 打赏
  • 举报
回复
mark
lee576 2008-11-03
  • 打赏
  • 举报
回复
如果GridView存在模板列,其中包含子控件,例如CheckBox等,导出EXCEL后就会出现该区域的不规律。所以要对模板列单独处理(转载)我转的,啊哈

public void PrepareGridViewForExport(Control gv)//模式化特殊元素 flashcong

{



LinkButton lb = new LinkButton();

Literal l = new Literal();

string name = String.Empty;



for (int i = 0; i < gv.Controls.Count; i++)

{



if (gv.Controls[i].GetType() == typeof(LinkButton))

{



l.Text = (gv.Controls[i] as LinkButton).Text;

gv.Controls.Remove(gv.Controls[i]);

gv.Controls.AddAt(i, l);



}



else if (gv.Controls[i].GetType() == typeof(DropDownList))

{



l.Text = (gv.Controls[i] as DropDownList).SelectedItem.Text;

gv.Controls.Remove(gv.Controls[i]);

gv.Controls.AddAt(i, l);



}



else if (gv.Controls[i].GetType() == typeof(CheckBox))

{



l.Text = (gv.Controls[i] as CheckBox).Checked ? "True" : "False";

gv.Controls.Remove(gv.Controls[i]);

gv.Controls.AddAt(i, l);



}



else if (gv.Controls[i].GetType() == typeof(ImageButton))

{

l.Text = "图片";

gv.Controls.Remove(gv.Controls[i]);

gv.Controls.AddAt(i, l);

}



if (gv.Controls[i].HasControls())

{

PrepareGridViewForExport(gv.Controls[i]);

}

}

}
lfhlyx 2008-11-03
  • 打赏
  • 举报
回复
导哪几列就取哪几列
Longgreenlee 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lee576 的回复:]
protected void export_Click(object sender, EventArgs e)
{
int i = 0;
if (this.MachineList.Rows.Count == 0)
{
Response.Write(" <script>alert('没有查找到数据,无法导出!') </script>");
}
else
{
///隐藏部分列,不予导出
this.MachineList.Columns[9].Visible = false;
this.MachineList.Columns[8].Visible = false;
this.MachineList.Columns[7].Visible = true;
this.MachineList.HeaderStyle.ForeCol…
[/Quote]

up
lovehongyun 2008-11-03
  • 打赏
  • 举报
回复
public void ExportToExcel(string Filename, GridView gridview, Page page)
{
gridview.EnableViewState = false;
gridview.AllowSorting = false;
gridview.AllowPaging = false;
//在这里把你不要的字段隐藏
DataTable temp = 这里的datatable是所有的数据,你取出来赋给temp
gridview.DataSource = temp;//重新绑定所有数据
gridview.DataBind();

page.Response.Clear();
page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
page.Response.AppendHeader("content-disposition", "attachment;filename=\"" + System.Web.HttpUtility.UrlEncode(Filename + DateTime.Now.ToShortDateString(), System.Text.Encoding.UTF8) + ".xls\"");
System.IO.StringWriter sw = new System.IO.StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);

gridview.RenderControl(htw);
page.Response.Write(sw.ToString());
page.Response.End();
}
kfps8kfps8 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lee576 的回复:]
赚点分真不容易
[/Quote]
哈哈
lovehongyun 2008-11-03
  • 打赏
  • 举报
回复
导出时把你要的列的数据取出来重新绑定一下.然后再导
lee576 2008-11-03
  • 打赏
  • 举报
回复
楼主的结贴率真低
lee576 2008-11-03
  • 打赏
  • 举报
回复
赚点分真不容易
lee576 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 y_qingbin 的回复:]
Export("application/ms-excel", "设备信息.xls");
如果把这个方法再贴出来就更好了,呵呵
[/Quote]

public void Export(string FileType, string FileName)

{

string style = @"<style>.text{mso-number-format:@}</script>";//导入到excel时,保存表里数字列中前面存在的 0 .

PrepareGridViewForExport(MachineList);//将模版列显示出来

Response.Clear();

Response.Charset = "GB2312";

Response.ContentEncoding = Encoding.UTF7;

Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());

Response.ContentType = FileType;

this.EnableViewState = false;

this.MachineList.AllowPaging = false;

System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);

StringWriter sw = new StringWriter();

HtmlTextWriter htw = new HtmlTextWriter(sw);

this.MachineList.RenderControl(htw);

Response.Write(style);

Response.Write(sw.ToString());

//Response.Write(dt.ToString());

Response.End();

}
三碗猪脚 2008-11-02
  • 打赏
  • 举报
回复
查询到dataTable,再由datatable导出到Excel效率高
只要对SQL语句改一下就可以了。
雨打青衫 2008-11-01
  • 打赏
  • 举报
回复
Export("application/ms-excel", "设备信息.xls");
如果把这个方法再贴出来就更好了,呵呵
加载更多回复(3)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧