asp.net 导出EXCEL文件二种方法

作者:袖梨 2022-06-25

方法一 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;
        }



//这样就行了,很实用的代码.

相关文章

精彩推荐