② 之前已经为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"; 
}
③
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; 
⑤ worksheet.PageSetup.PrintTitleRows = "$1:$1";
⑥ worksheet.PageSetup.CenterFooter = "第&P页 / 共&N页";
