将GridView的数据导入excel的时将标题居中,并将标题下的时间段放在右或居中,我的代码如下:
最好能给我直接加就能用嘿嘿!
 Response.Clear();
  Response.Buffer = true;
  string style = @"<style> .text { mso-number-format:\@; } </script> ";
  Response.ContentType = "application/ms-excel";
  this.EnableViewState = true;
  HttpContext.Current.Response.Charset = "GB2312";
  HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
  Response.ClearContent();
  Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
  StringWriter sw = new StringWriter();
  HtmlTextWriter htw = new HtmlTextWriter(sw);
  sw.WriteLine("<tr><td colspan=5>标题</td><tr>");
  sw.WriteLine("<br/><tr><td colspan=5>时间</td><tr>");
  GridView1.RenderControl(htw);
  Response.Write(style);
  Response.Write(sw.ToString());
  Response.End();
想要的格式就是:
  标题
  时间段
  GridView的数据
注:格式要整齐  

解决方案 »

  1.   

    印象中好像GridView的HeaderTemplate是居中的(Horizonalign=center)导出时就会是居中的
      

  2.   

    你用什么方式写excel很关键
    给你一个excel处理方法
    其中
    Excel.Range range = sheet.get_Range(sheet.Cells[x1, y1], sheet.Cells[x2, y2]);
    range.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; public void SetHeadContent(int x1, int y1, int x2, int y2, System.Drawing.Font font, System.Drawing.Color color, string text)
            {
                //Excel.Range range = sheet.get_Range("A1", "A8");
                //Excel.Range range = sheet.get_Range(this.GetAix(x1, y1), this.GetAix(x2, y2));
                Excel.Range range = sheet.get_Range(sheet.Cells[x1, y1], sheet.Cells[x2, y2]);
                range.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; 
                range.Merge(true);
                range.set_Value(miss, text);
                if (font != null)
                {
                    range.Font.Size = font.Size;
                    range.Font.Bold = font.Bold;
                    range.Font.Name = font.Name;
                    range.Font.Italic = font.Italic;
                    range.Font.Underline = font.Underline;
                }
                if (color != null)
                {
                    range.Font.Color = System.Drawing.ColorTranslator.ToOle(color);
                }
            }