• DataGrid导出到Excel


       ① 怎样把DataGrid的数据导出到Excel以供打印?
     
     ② 之前已经为DataGrid设置了TableStyle,即自定义了列标题和要显示的列,如果想以自定义的视图导出数据该怎么办?
      
    ③ 把数据导出到Excel后,怎样为它设置边框啊?
      
    ④ 怎样使从DataGrid导出到Excel的某个列居中对齐?
      
    ⑤ 数据从DataGrid导出到Excel后,怎样使标题行在打印时出现在每一页?
      
    ⑥ DataGrid数据导出到Excel后打印时每一页显示’当前页/共几页’,怎样实现?

      
    private void button1_Click(object sender, System.EventArgs e)

      
    {

      
    int row_index, col_index; 
      row_index 
    = 1
             col_index 
    = 1

      Excel.ApplicationClass excel 
    = new Excel.ApplicationClass(); 

      excel.Workbooks.Add(
    true);  

      DataTable dt 
    = ds.Tables["table"]; 

      
    foreach(DataColumn dcHeader in dt.Columns)

      excel.Cells[row_index, col_index
    ++= dcHeader.ColumnName; 

      
    foreach(DataRow dr in dt.Rows)

      
    {

      col_index 
    = 0

      
    foreach(DataColumn dc in dt.Columns)

      
    {

      excel.Cells[row_index
    +1, col_index+1= dr[dc]; 

      col_index
    ++

      }


      row_index
    ++

      }


      excel.Visible 
    = true
      }
      

      
    private void Form1_Load(object sender, System.EventArgs e)

      
    {

      SqlConnection conn 
    = new SqlConnection("server=tao; uid=sa; pwd=; database=pubs"); 

      conn.Open();  

      SqlDataAdapter da 
    = new SqlDataAdapter("select * from authors", conn); 

      ds 
    = new DataSet(); 

      da.Fill(ds, 
    "table");  

      dataGrid1.DataSource 
    = ds; 

      dataGrid1.DataMember 
    = "table"

      }

       ②dataGrid1.TableStyles[0].GridColumnStyles[index].HeaderText; //index可以从0~dataGrid1.TableStyles[0].GridColumnStyles.Count遍历。
       ③
    Excel.Range range; 

      range
    =worksheet.get_Range(worksheet.Cells[1,1],xSt.Cells[ds.Tables[0].Rows.Count+1,ds.Tables[0].Columns.Count]); 

      range.BorderAround(Excel.XlLineStyle.xlContinuous,Excel.XlBorderWeight.xlThin,Excel.XlColorIndex.xlColorIndexAutomatic,
    null); 
      range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].ColorIndex 
    = Excel.XlColorIndex.xlColorIndexAutomatic; 

      range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].LineStyle 
    =Excel.XlLineStyle.xlContinuous; 

      range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].Weight 
    =Excel.XlBorderWeight.xlThin; 

      range.Borders[Excel.XlBordersIndex.xlInsideVertical].ColorIndex 
    =Excel.XlColorIndex.xlColorIndexAutomatic; 

      range.Borders[Excel.XlBordersIndex.xlInsideVertical].LineStyle 
    = Excel.XlLineStyle.xlContinuous; 

      range.Borders[Excel.XlBordersIndex.xlInsideVertical].Weight 
    = Excel.XlBorderWeight.xlThin; 
       ④ range.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter
      
    ⑤ worksheet.PageSetup.PrintTitleRows = "$1:$1";
      
    ⑥ worksheet.PageSetup.CenterFooter = "第&P页 / 共&N页";

  • 相关阅读:
    lucene教程【转】【补】
    线程本地变量ThreadLocal (耗时工具)【原】
    Exception异常转String【转】
    织梦DedeCms网站更换域名后文章图片路径批量修改
    织梦DedeCms去掉栏目页面包屑导航最后的分隔符“>”
    dedecms网站栏目增加缩略图的方法-测试通过
    织梦dedecms调用子栏目的方法
    织梦DedeCMS调用二级子栏目或者多级栏目解决方法
    dedecms首页调用栏目内容和单页内容的方法
    JS中的prototype
  • 原文地址:https://www.cnblogs.com/yangbin1005/p/1016014.html
Copyright © 2020-2023  润新知