自定义样式导出EXCEL
void ExportExcel() { DataGrid outGrid = new DataGrid(); outGrid.DataSource = ExportTable(); outGrid.DataBind(); outGrid.HeaderStyle.BackColor = Color.Yellow; outGrid.HeaderStyle.Font.Bold = true; outGrid.ItemStyle.HorizontalAlign = HorizontalAlign.Right; //格式可以通过Excel另存html的style获取 foreach (DataGridItem item in outGrid.Items) { item.Cells[0].Style.Add("mso-number-format", "\\[ENG\\]\\[$-409\\]dd\\\\-mmm");//m/d/yyyy date format item.Cells[6].Style.Add("mso-number-format", "\\@");//text format } DataGridToExcel(outGrid, Response); } DataTable ExportTable() { DataTable dt = new DataTable(); dt.Columns.Add("Date"); dt.Columns.Add("Court"); dt.Columns.Add("Serial"); dt.Columns.Add("Inventory"); dt.Columns.Add("Initials"); dt.Columns.Add("Type"); dt.Columns.Add("Page"); dt.Columns.Add("Error"); dt.Columns.Add("Comments"); foreach (DataRow r in ds_.Tables[0].Rows) { DataRow dn = dt.NewRow(); dn[0] = r[0].ToString(); dn[1] = r[1].ToString(); dn[2] = r[2].ToString(); dn[3] = r[3].ToString(); dn[4] = r[4].ToString(); dn[5] = r[5].ToString(); dn[6] = r[6].ToString(); dn[7] = r[7].ToString(); dn[8] = r[8].ToString(); dt.Rows.Add(dn); } return dt; } //从IE上导出保存的方式 void DataGridToExcel(DataGrid grd, HttpResponse response) { foreach (DataGridItem item in grd.Items) { foreach (TableCell cell in item.Cells) PrepareControlForExport(cell); } response.Clear(); response.Buffer = true; response.Charset = "utf-8"; response.AppendHeader("Content-Disposition", "attachment;filename=NewFileName.xls"); response.ContentEncoding = System.Text.Encoding.Default; response.ContentType = "application/ms-excel"; System.Globalization.CultureInfo AreaInfo = new System.Globalization.CultureInfo("en-US", true); System.IO.StringWriter oStringWriter = new System.IO.StringWriter(AreaInfo); System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter); grd.GridLines = GridLines.Both; grd.Font.Name = "Arial"; grd.Font.Size = 10; grd.HeaderStyle.Font.Bold = true; grd.RenderControl(oHtmlTextWriter); response.Write(oStringWriter.ToString()); response.End(); } //保存为本地文件的方式(这个自由发挥的空间较大) void SaveGridViewToExcel(GridView grd, string filename) { System.IO.StringWriter sw = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw); grd.RenderControl(htw); File.WriteAllText(filename, sw.ToString()); }
private static void PrepareControlForExport(Control control) { for (int i = 0; i < control.Controls.Count; i++) { Control current = control.Controls[i]; if (current is LinkButton) { control.Controls.Remove(current); control.Controls.AddAt(i, new LiteralControl((current as LinkButton).Text)); } else if (current is ImageButton) { control.Controls.Remove(current); control.Controls.AddAt(i, new LiteralControl((current as ImageButton).AlternateText)); } else if (current is HyperLink) { control.Controls.Remove(current); control.Controls.AddAt(i, new LiteralControl((current as HyperLink).Text)); } else if (current is DropDownList) { control.Controls.Remove(current); control.Controls.AddAt(i, new LiteralControl((current as DropDownList).SelectedItem.Text)); } else if (current is CheckBox) { control.Controls.Remove(current); control.Controls.AddAt(i, new LiteralControl((current as CheckBox).Checked ? "True" : "False")); } if (current.HasControls()) { PrepareControlForExport(current); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?