<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      XuGang

      記錄一個(gè)程序員的成長

       

      關(guān)于ASP.NET 將數(shù)據(jù)導(dǎo)出成Excel 的總結(jié)[下]

       

      使用ExcelHelper 封裝類,將DataSet 輸出成Excel文件的多個(gè)Sheet 頁。

       

      使用代碼如下:

      public partial class _Default : System.Web.UI.Page
          {
              protected void Page_Load(object sender, EventArgs e)
              {
                  btn.Click += new EventHandler(btn_Click);
                  Button1.Click += new EventHandler(Button1_Click);
              }

              void Button1_Click(object sender, EventArgs e)
              {
                  var ds = new DataSet();
                  var dt = new DataTable("TableName For Sheet1");
                  dt.Columns.Add("col1");
                  dt.Columns.Add("col2");
                  dt.Rows.Add("Value1""Value2");

                  var dt2 = new DataTable("TableName For Sheet2");
                  dt2.Columns.Add("col1");
                  dt2.Columns.Add("col2");
                  dt2.Rows.Add("Value1""Value2");
                  ds.Tables.Add(dt);
                  ds.Tables.Add(dt2);
                  ExcelHelper.ToExcel(ds, "test.xls", Page.Response);           
              }

              void btn_Click(object sender, EventArgs e)
              {
                  var ds = new DataSet();
                  DataTable dt = new DataTable();
                  dt.Columns.Add("col");
                  ds.Tables.Add(dt);
                  ExcelHelper.ToExcel(ds, "test.xls", Page.Response);
              }      
          }


      ExcelHelper.cs 封裝類,源代碼如下:
      
      //ExcelHelper.cs

      public class ExcelHelper
      {
          //Row limits older Excel version per sheet
              const int rowLimit = 65000;

              private static string getWorkbookTemplate()
              {
                  var sb = new StringBuilder();
                  sb.Append("<xml version>\r\n<Workbook
              xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\"\r\n");
                  sb.Append(" xmlns:o=\"urn:schemas-microsoft-com:office:office\"\r\n
              xmlns:x=\"urn:schemas- microsoft-com:office:excel\"\r\n
              xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\">\r\n");
                  sb.Append(" <Styles>\r\n
              <Style ss:ID=\"Default\" ss:Name=\"Normal\">\r\n
              <Alignment ss:Vertical=\"Bottom\"/>\r\n <Borders/>");
                  sb.Append("\r\n <Font/>\r\n <Interior/>\r\n <NumberFormat/>\r\n
              <Protection/>\r\n </Style>\r\n
              <Style ss:ID=\"BoldColumn\">\r\n <Font ");
                  sb.Append("x:Family=\"Swiss\" ss:Bold=\"1\"/>\r\n </Style>\r\n
              <Style ss:ID=\"s62\">\r\n <NumberFormat");
                  sb.Append(" ss:Format=\"@\"/>\r\n </Style>\r\n
              <Style ss:ID=\"Decimal\">\r\n
              <NumberFormat ss:Format=\"0.0000\"/>\r\n </Style>\r\n ");
                  sb.Append("<Style ss:ID=\"Integer\">\r\n
              <NumberFormat ss:Format=\"0\"/>\r\n </Style>\r\n
              <Style ss:ID=\"DateLiteral\">\r\n <NumberFormat ");
                  sb.Append("ss:Format=\"mm/dd/yyyy;@\"/>\r\n </Style>\r\n
              <Style ss:ID=\"s28\">\r\n");
                  sb.Append("<Alignment ss:Horizontal=\"Left\" ss:Vertical=\"Top\"
              ss:ReadingOrder=\"LeftToRight\" ss:WrapText=\"1\"/>\r\n");
                  sb.Append("<Font x:CharSet=\"1\" ss:Size=\"9\"
              ss:Color=\"#808080\" ss:Underline=\"Single\"/>\r\n");
                  sb.Append("<Interior ss:Color=\"#FFFFFF\" ss:Pattern=\"Solid\"/>

              </Style>\r\n</Styles>\r\n {0}</Workbook>");
                  return sb.ToString();
              }

              private static string replaceXmlChar(string input)
              {
                  input = input.Replace("&""&");
                  input = input.Replace("<""<");
                  input = input.Replace(">"">");
                  input = input.Replace("\""""");
                  input = input.Replace("'""'");
                  return input;
              }

              private static string getWorksheets(DataSet source)
              {
                  var sw = new StringWriter();
                  if (source == null || source.Tables.Count == 0)
                  {
                      sw.Write("<Worksheet ss:Name=\"Sheet1\"><Table><Row>

              <Cell  ss:StyleID=\"s62\"><Data ss:Type=\"String\"></Data>
              </Cell></Row></Table></Worksheet>");
                      return sw.ToString();
                  }
                  foreach (DataTable dt in source.Tables)
                  {
                      if (dt.Rows.Count == 0)
                          sw.Write("<Worksheet ss:Name=\"" + replaceXmlChar(dt.TableName) +
                  "\"><Table><Row><Cell  ss:StyleID=\"s62\">

                  <Data ss:Type=\"String\"></Data></Cell></Row>
                  </Table></Worksheet>");
                      else
                      {
                          //write each row data
                          var sheetCount = 0;
                          for (int i = 0; i < dt.Rows.Count; i++)
                          {
                              if ((i % rowLimit) == 0)
                              {
                                  //add close tags for previous sheet of the same data table
                                  if ((i / rowLimit) > sheetCount)
                                  {
                                      sw.Write("</Table></Worksheet>");
                                      sheetCount = (i / rowLimit);
                                  }
                                  sw.Write("<Worksheet ss:Name=\"" +
                      replaceXmlChar(dt.TableName) +
                                           (((i / rowLimit) == 0) ? "" :
                      Convert.ToString(i / rowLimit)) + "\"><Table>");
                                  //write column name row
                                  sw.Write("<Row>");
                                  foreach (DataColumn dc in dt.Columns)
                                      sw.Write(
                                          string.Format(
                                              "<Cell ss:StyleID=\"BoldColumn\">

                      <Data ss:Type=\"String\">{0}</Data></Cell>",
                                              replaceXmlChar(dc.ColumnName)));
                                  sw.Write("</Row>\r\n");
                              }
                              sw.Write("<Row>\r\n");
                              foreach (DataColumn dc in dt.Columns)
                                  sw.Write(
                                      string.Format(
                                          "<Cell ss:StyleID=\"s62\"><Data ss:Type=\"String\">

                          {0}</Data></Cell>",
                                                  replaceXmlChar
                          (dt.Rows[i][dc.ColumnName].ToString())));
                              sw.Write("</Row>\r\n");
                          }
                          sw.Write("</Table></Worksheet>");
                      }
                  }

                  return sw.ToString();
              }
              public static string GetExcelXml(DataTable dtInput, string filename)
              {
                  var excelTemplate = getWorkbookTemplate();
                  var ds = new DataSet();
                  ds.Tables.Add(dtInput.Copy());
                  var worksheets = getWorksheets(ds);
                  var excelXml = string.Format(excelTemplate, worksheets);
                  return excelXml;
              }

              public static string GetExcelXml(DataSet dsInput, string filename)
              {
                  var excelTemplate = getWorkbookTemplate();
                  var worksheets = getWorksheets(dsInput);
                  var excelXml = string.Format(excelTemplate, worksheets);
                  return excelXml;
              }

              public static void ToExcel
              (DataSet dsInput, string filename, HttpResponse response)
              {
                  var excelXml = GetExcelXml(dsInput, filename);
                  response.Clear();
                  response.AppendHeader("Content-Type""application/vnd.ms-excel");
                  response.AppendHeader
              ("Content-disposition""attachment; filename=" + filename);
                  response.Write(excelXml);
                  response.Flush();
                  response.End();
              }

              public static void ToExcel
              (DataTable dtInput, string filename, HttpResponse response)
              {
                  var ds = new DataSet();
                  ds.Tables.Add(dtInput.Copy());
                  ToExcel(ds, filename, response);
              }
          }
      來源:http://www.codeproject.com/KB/office/ExportDataSetToExcel.aspx

      Demo下載

      posted on 2011-09-26 14:35  鋼鋼  閱讀(1509)  評論(2)    收藏  舉報(bào)

      導(dǎo)航

      主站蜘蛛池模板: 国产精品疯狂输出jk草莓视频| 麻豆精品一区二区综合av| 亚洲欧美一区二区成人片 | 精精国产XXX在线观看| 亚洲日韩欧洲乱码av夜夜摸| 久久亚洲美女精品国产精品 | 韶山市| 人妻少妇偷人精品免费看| 无码国内精品久久人妻蜜桃| 日韩在线视频网| 狠狠色噜噜狠狠狠狠av不卡| 狠狠综合久久av一区二| 老熟妇乱子交视频一区| 国内外成人综合免费视频| 亚洲精品国产av成拍色拍个| 亚洲日韩国产精品第一页一区| 日本韩无专砖码高清观看| 国产美女白丝袜精品_a不卡| 91精品国产午夜福利| 久久国产乱子精品免费女| 亚洲欧美中文日韩v在线97| 精品无码成人片一区二区| 乱老年女人伦免费视频| 亚洲国产精品一二三区| 乱色熟女综合一区二区三区| 亚洲天堂av免费在线看| 亚洲国产美国产综合一区| 黑人玩弄人妻中文在线| 国产精品熟妇视频国产偷人| 日日噜久久人妻一区二区| 国产无遮挡吃胸膜奶免费看| 国产精品无码不卡在线播放| 日本一区二区三区激情视频| 国产免费AV片在线看| 人人爽人人爽人人片a免费| 深夜福利成人免费在线观看| yw尤物av无码国产在线观看| 久久国产精品老人性| 色狠狠综合天天综合综合| 人妻激情另类乱人伦人妻| 国产精品aⅴ免费视频|