zoukankan      html  css  js  c++  java
  • 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页";

  • 相关阅读:
    机器学习到深度学习资料
    安装CentOS 6停在selinux-policy-targeted卡住的问题解决
    U盘安装Ubuntu 16.04出现:Failed to load ldlinux.c32
    Ubuntu 16.04下使用UNetbootin制作的ISO镜像为U盘启动出现:Missing Operating System (mbr.bin)
    为什么Linux的Fdisk分区时First Sector为2048?
    Windows下将ISO镜像制作成U盘启动的工具(U盘启动工具/UltraISO/Rufus/Universal-USB)
    CentOS 6.9安装类型选择(Basic Server/Web Server)
    Java中String与byte[]的转换
    IntelliJ IDEA插件-翻译插件
    Mycat查询时出现:Error Code: 1064. can't find any valid datanode
  • 原文地址:https://www.cnblogs.com/yangbin1005/p/1016014.html
Copyright © 2011-2022 走看看