usingMicrosoft.Office.Interop.Excel;
usingSystem.Runtime.InteropServices;
[DllImport(“User32.dll”,CharSet=CharSet.Auto)]
publicstaticexternintGetWindowThreadProcessId(IntPtrhwnd,outintpid);
//函数原型;DWORDGetWindowThreadProcessld(HWNDhwnd,LPDWORDlpdwProcessld);
//参数:hWnd:窗口句柄
//参数:lpdwProcessld:接收进程标识的32位值的地址。如果这个参数不为NULL,GetWindwThreadProcessld将进程标识拷贝到这个32位值中,否则不拷贝
//返回值:返回值为创建窗口的线程标识。
//dt:从数据库读取的数据;file_name:保存途径;sheet_name:表单称号
privatevoidDataTableToExcel(DataTabledt,stringfile_name,stringsheet_name)
{
Microsoft.Office.Interop.Excel.ApplicationMyxls=newMicrosoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.WorkbookMywkb=Myxls.Workbooks.Add();
Microsoft.Office.Interop.Excel.WorksheetMySht=Mywkb.ActiveSheet;
MySht.Name=sheet_name;
Myxls.Visible=false;
Myxls.DisplayAlerts=false;
try
{
//写入表头
object[]arrHeader=newobject[dt.Columns.Count];
for(inti=0;i<dt.Columns.Count;i++)
{
arrHeader[i]=dt.Columns[i].ColumnName;
}
MySht.Range[Mysht.Cells[1,1],MySht.Cells[1,dt.Columns.Count]].Value2=arrHeader;
//写入表体数据
object[,]arrBody=newobject[dt.Rows.Count,dt.Columns.Count];
for(inti=0;i<dt.Rows.Count;i++)
{
for(intj=0;j<dt.Columns.Count;j++)
{
arrBody[i,j]=dt.Rows[i][j].ToString();
}
}
MySht.Range[MySht.Cells[2,1],MySht.Cells[dt.Rows.Count+1,dt.Columns.Count]].Value2=arrBody;
if(Mywkb!=null)
{
Mywkb.SaveAs(file_name);
Mywkb.Close(Type.Missing,Type.Missing,Type.Missing);
Mywkb=null;
}
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message,”体系提示”);
}
finally
{
//完全关闭Excel进程
if(Myxls!=null)
{
Myxls.Quit();
try
{
if(Myxls!=null)
{
intpid;
GetWindowThreadProcessId(newIntPtr(Myxls.Hwnd),outpid);
System.Diagnostics.Processp=System.Diagnostics.Process.GetProcessById(pid);
p.Kill();
}
}
catch(Exceptionex)
{
MessageBox.Show(“结束当前EXCEL进程失败:”+ex.Message);
}
Myxls=null;
}
GC.Collect();
}
}
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com