方法一 c#导出到excel
string filename="d:abc.xls";
system.data.datatable dt=new system.data.datatable();
filestream objfilestream;
streamwriter objstreamwriter;
string strline="";
objfilestream = new filestream(filename,filemode.openorcreate,fileaccess.write);
objstreamwriter = new streamwriter(objfilestream,system.text.encoding.unicode);for(int i=0;i
{
strline=strline+dt.columns[i].columnname.tostring()+convert.tochar(9);
}
objstreamwriter.writeline(strline);
strline="";for(int i=0;i
{
strline=strline+(i+1)+convert.tochar(9);
for(int j=1;j{
strline=strline+dt.rows[i][j].tostring()+convert.tochar(9);
}
objstreamwriter.writeline(strline);
strline="";
}
objstreamwriter.close();
objfilestream.close();
方法二 datatable 导出到excel代码
private void exportexcel(datatable dt)
{
if (dt == null) return;
microsoft.office.interop.excel.application xlapp = new microsoft.office.interop.excel.application();if (xlapp == null)
{
return;
}
system.globalization.cultureinfo currentci = system.threading.thread.currentthread.currentculture;
system.threading.thread.currentthread.currentculture = new system.globalization.cultureinfo("en-us");
microsoft.office.interop.excel.workbooks workbooks = xlapp.workbooks;
microsoft.office.interop.excel.workbook workbook = workbooks.add(microsoft.office.interop.excel.xlwbatemplate.xlwbatworksheet);
microsoft.office.interop.excel.worksheet worksheet = (microsoft.office.interop.excel.worksheet)workbook.worksheets[1];
microsoft.office.interop.excel.range range;
long totalcount = dt.rows.count;
long rowread = 0;
float percent = 0;
for (int i = 0; i < dt.columns.count; i++)
{
worksheet.cells[1, i + 1] = dt.columns[i].columnname;
range = (microsoft.office.interop.excel.range)worksheet.cells[1, i + 1];
range.interior.colorindex = 15;
range.font.bold = true;
}
for (int r = 0; r < dt.rows.count; r++)
{
for (int i = 0; i < dt.columns.count; i++)
{
worksheet.cells[r + 2, i + 1] = dt.rows[r][i];
}
rowread++;
percent = ((float)(100 * rowread)) / totalcount;
}
xlapp.visible = true;
}
//这样就行了,很实用的代码.