您的位置:首页 > 其它

DataTable ---导出Excel

2015-09-30 08:57 232 查看
//mscorlib.dll,v4.0.0.0&&Microsoft.Office.Interop.Excel.dll,v14.0.0.0

///<summary>
///导出Excel
///</summary>
///<paramname="dt_data">要导出的数据表</param>

publicvoidExcelPort(DataTabledt_data)
{
try
{

//表格控件对象(方法见后面)
stringfileName=ShowSaveFileDialog("MicrosoftExcelDocument","MicrosoftExcel|*.xls");

if(string.IsNullOrEmpty(fileName))return;

//创建Excel对象
System.Reflection.Missingmiss=System.Reflection.Missing.Value;
//此处引用Microsoft.Office.Interop.Excel.dll,v14.0.0.0且必须与电脑安装office达到一致(否则不能正常创建对象)
Microsoft.Office.Interop.Excel.Applicationxlapp=newMicrosoft.Office.Interop.Excel.Application();

xlapp.Visible=false;//是否显示导出过程,建议关闭,否则在导出过程中鼠标点击Excel文件时会出错。

xlapp.UserControl=true;
Microsoft.Office.Interop.Excel.Workbooksworkbooks=xlapp.Workbooks;
//加载模板(必须先制作好导出模版,在此处引用)worKbooks.Add(url)url为模版路径
Microsoft.Office.Interop.Excel._Workbookworkbook=workbooks.Add(Application.StartupPath.ToString()+("\\Model\\modelNm.xls"));
Microsoft.Office.Interop.Excel.Sheetssheets=workbook.Sheets;
Microsoft.Office.Interop.Excel._Worksheetworksheet=null;

introw=0,column=0;
if(fileName=="")return;
try
{
//选中第1个工作薄。并给工作簿添加内容内容
//①表格头设置

worksheet=(Microsoft.Office.Interop.Excel._Worksheet)sheets.get_Item(1);
//eg.2015年9月30日xxx
worksheet.Cells[1,1]=DateTime.Now.Year+"年"+DateTime.Now.Month+"月"+DateTime.Now.Day+"日"+"xxx";
worksheet.Name="TableNm";
//
worksheet.Cells[2,3]="*"+xxx+"*";
worksheet.Cells[3,3]=xxx;
worksheet.Cells[4,3]=xxx;
worksheet.Cells[4,6]=xxxx;

row=dt_data.Rows.Count;
column=dt_data.Columns.Count;
②表格主体内容设置
for(inti=1;i<=row;i++)
{
//前面四行是表头(由模板决定)
intlint_row=i+5;
intdt_row=i-1;

worksheet.Cells[lint_row,2]=dt_data.Rows[dt_row][columNm].ToString();
worksheet.Cells[lint_row,3]=dt_data.Rows[dt_row][column].ToString();
worksheet.Cells[lint_row,4]=dt_data.Rows[dt_row][column].ToString();
worksheet.Cells[lint_row,5]=dt_data.Rows[dt_row][column].ToString();
worksheet.Cells[lint_row,6]=dt_data.Rows[dt_row][column].ToString();
worksheet.Cells[lint_row,7]=dt_data.Rows[dt_row][column].ToString();
}

//保存数据
workbook.RefreshAll();
//保存数据
workbook.SaveCopyAs(fileName);

//退出excel
workbook.Close(false,miss,miss);

DevExpress.XtraEditors.XtraMessageBox.Show("表格数据已成功导出!"+"\r\n文件名:"+fileName,"",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message+":"+ex.ToString());
}
finally
{
xlapp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbooks);
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlapp);
xlapp=null;
GC.Collect();
}
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message+":"+ex.ToString());
}
}


//保存对话框System.Windows.Forms.dll,v4.0.0.0

///<summary>
///保存文件对话框(保存则返回文件名,取消返回为“”)
///</summary>
///<paramname="title">保存对话框窗体Caption</param>
///<paramname="filter">文件保存类型</param>
///<returns>文件名</returns>

///http://www.cnblogs.com/zlytu/archive/2013/04/10/3013254.html(详)


publicstaticstringShowSaveFileDialog(stringtitle,stringfilter)
{
SaveFileDialogdlg=newSaveFileDialog();
stringname="Name"+System.DateTime.Now.ToString("yyyyMMddHHmmss",System.Globalization.DateTimeFormatInfo.InvariantInfo);
intn=name.LastIndexOf(".")+1;
if(n>0)name=name.Substring(n,name.Length-n);
//"ExportTo"
dlg.Title="文件保存";
//文件名
dlg.FileName=name;
//文件保存类型(eg.MicrosoftExcel|*.xls)
dlg.Filter=filter;
if(dlg.ShowDialog()==DialogResult.OK)returndlg.FileName;
return"";
}


Code39一维码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: