天天看點

c#背景如何導出excel到本地_c#導出到excel

//導出Excel的方法

private void ExportExcel()

{

DataSet ds=dtsSelect;//資料源

if(ds==null) return;

string saveFileName="";

bool fileSaved=false;

SaveFileDialog saveDialog=new SaveFileDialog();

saveDialog.DefaultExt ="xls";

saveDialog.Filter="Excel檔案|*.xls";

saveDialog.FileName ="Sheet1";

saveDialog.ShowDialog();

saveFileName=saveDialog.FileName;

if(saveFileName.IndexOf(":")<0) return; //被點了取消

Excel.Application xlApp=new Excel.Application();

if(xlApp==null)

{

MessageBox.Show("無法建立Excel對象,可能您的機子未安裝Excel");

return;

}

Excel.Workbooks workbooks=xlApp.Workbooks;

Excel.Workbook workbook=workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);

Excel.Worksheet worksheet=(Excel.Worksheet)workbook.Worksheets[1];//取得sheet1

//寫入字段

for(int i=0;i

{

worksheet.Cells[1,i+1]=ds.Tables[0].Columns[i].ColumnName;

}

//寫入數值

for(int r=0;r

{

for(int i=0;i

{

worksheet.Cells[r+2,i+1]=ds.Tables[0].Rows[r][i];

}

System.Windows.Forms.Application.DoEvents();

}

worksheet.Columns.EntireColumn.AutoFit();//列寬自适應。

if(cmbxType.Text!="Notification")

{

Excel.Range rg=worksheet.get_Range(worksheet.Cells[2,2],worksheet.Cells[ds.Tables[0].Rows.Count+1,2]);

rg.NumberFormat="00000000";

}

if(saveFileName!="")

{

try

{

workbook.Saved =true;

workbook.SaveCopyAs(saveFileName);

fileSaved=true;

}

catch(Exception ex)

{

fileSaved=false;

MessageBox.Show("導出檔案時出錯,檔案可能正被打開!\n"+ex.Message);

}

}

else

{

fileSaved=false;

}

xlApp.Quit();

GC.Collect();//強行銷毀

if(fileSaved && System.IO.File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); //打開EXCEL

}