限制由多个GridViews由asp.net创build的excel文件中的宽度

我的asp.net页面需要下载多个网格到一个excel文件。 问题是宽度需要被限制,以便它适合在一个页面上。 我可以得到它与一个网格工作正常,但不是与多个网格。 使用多个网格时,它会忽略网格的“Wrap”和“Width”字段。 网格需要显示在一个工作表上

准备撕下我的头发。 请帮忙!!!!!!!!!!!!!!!!

private BoundField CreateBoundField(String headerText, String dataField, int width) { BoundField bf = new BoundField(); bf.HeaderText = headerText; bf.DataField = dataField; bf.ItemStyle.Wrap = true; bf.ItemStyle.Width = new Unit(width); bf.ItemStyle.HorizontalAlign = HorizontalAlign.Left; bf.ItemStyle.VerticalAlign = VerticalAlign.Top; return bf; } private GridView CreateSystem1HwGridviewForExcel() { GridView gvSystem1HwExcel = new GridView(); gvSystem1HwExcel.AutoGenerateColumns = false; gvSystem1HwExcel.Columns.Add(CreateBoundField("Display Name", "DisplayName", 40)); gvSystem1HwExcel.Columns.Add(CreateBoundField("Item Name", "ItemName", 40)); gvSystem1HwExcel.Columns.Add(CreateBoundField("HW Name", "HWName", 40)); gvSystem1HwExcel.Columns.Add(CreateBoundField("Item Type", "ItemType", 40)); gvSystem1HwExcel.Columns.Add(CreateBoundField("Manufacturer", "Manufacturer", 40)); gvSystem1HwExcel.Columns.Add(CreateBoundField("Model", "Model", 40)); gvSystem1HwExcel.Columns.Add(CreateBoundField("Serial Number", "SerialNumber", 40)); gvSystem1HwExcel.Columns.Add(CreateBoundField("Location", "Location", 40)); gvSystem1HwExcel.Columns.Add(CreateBoundField("Grid", "Grid", 40)); gvSystem1HwExcel.Columns.Add(CreateBoundField("RU", "RU", 40)); gvSystem1HwExcel.Columns.Add(CreateBoundField("Hw Status", "HwStatus", 40)); gvSystem1HwExcel.Columns.Add(CreateBoundField("Power Status", "PowerStatus", 40)); gvSystem1HwExcel.DataSource = dtSystem1Hardware; //gvSystem1HwExcel.HeaderStyle.CssClass = "gridHeader"; gvSystem1HwExcel.HeaderStyle.BackColor = System.Drawing.Color.Red; gvSystem1HwExcel.HeaderStyle.ForeColor = System.Drawing.Color.White; gvSystem1HwExcel.DataBind(); gvSystem1HwExcel.Style.Value = "word-break:break-all;word-wrap:break-word"; gvSystem1HwExcel.Width = new Unit(10); return gvSystem1HwExcel; } private GridView CreateSystem2HwGridviewForExcel() { GridView gvSystem2HwExcel = new GridView(); gvSystem2HwExcel.AutoGenerateColumns = false; gvSystem2HwExcel.Columns.Add(CreateBoundField("Name", "Name", 40)); gvSystem2HwExcel.Columns.Add(CreateBoundField("Manufacturer", "Manufacturer", 40)); gvSystem2HwExcel.Columns.Add(CreateBoundField("Model", "Model", 40)); gvSystem2HwExcel.Columns.Add(CreateBoundField("Serial Number", "SerialNumber", 40)); gvSystem2HwExcel.Columns.Add(CreateBoundField("Location", "Location", 40)); gvSystem2HwExcel.Columns.Add(CreateBoundField("Grid", "Grid", 40)); gvSystem2HwExcel.Columns.Add(CreateBoundField("HW Status", "HwStatus", 40)); gvSystem2HwExcel.Columns.Add(CreateBoundField("Power Status", "PowerStatus", 40)); gvSystem2HwExcel.DataSource = dtSystem2Hardware; //gvSystem2HwExcel.HeaderStyle.CssClass = "gridHeader"; gvSystem2HwExcel.HeaderStyle.BackColor = System.Drawing.Color.Red; gvSystem2HwExcel.HeaderStyle.ForeColor = System.Drawing.Color.White; gvSystem2HwExcel.DataBind(); gvSystem2HwExcel.Style.Value = "word-break:break-all;word-wrap:break-word"; gvSystem2HwExcel.Width = new Unit(10); return gvSystem2HwExcel; } protected void btnExcel_Click(object sender, EventArgs e) { LoadUserInput(); DisplayReport(); string fileName = "attachment;filename= ArchivalReportOn_" + DateTime.Now.ToString("dd-MM-yyyy-hh-mm-ss") + ".xls"; Response.Clear(); Response.AddHeader("content-disposition", fileName); Response.Buffer = false; //sssssssssss Response.Charset = ""; Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.ContentType = "Application / vnd.xls"; System.IO.StringWriter stringWrite = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); var gvSystem1HwExcel= CreateSystem1HwGridviewForExcel(); gvSystem1HwExcel.RenderControl(htmlWrite); var gvSystem2HwExcel = CreateSystem2HwGridviewForExcel(); gvSystem2HwExcel.RenderControl(htmlWrite); Response.Write(stringWrite.ToString()); Response.End(); } }