知识大全 C#中datatabel导出excel(三种方法)

Posted

篇首语:一名具有高尚师德的教师,须是一个因材施教,公正公平对待每一名学生的教师。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#中datatabel导出excel(三种方法)相关的知识,希望对你有一定的参考价值。

C#中datatabel导出excel(三种方法)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  方法一 (拷贝直接可以使用 适合大批量资料 上万笔)Microsoft Office Interop Excel Application appexcel = new Microsoft Office Interop Excel Application();SaveFileDialog savefiledialog = new SaveFileDialog();System Reflection Missing miss = System Reflection Missing Value;appexcel = new Microsoft Office Interop Excel Application();Microsoft Office Interop Excel Workbook workbookdata;Microsoft Office Interop Excel Worksheet worksheetdata;Microsoft Office Interop Excel Range rangedata;//设置对象不可见appexcel Visible = false;System Globalization CultureInfo currentci = System Threading Thread CurrentThread CurrentCulture;System Threading Thread CurrentThread CurrentCulture = new System Globalization CultureInfo( en us );workbookdata = appexcel Workbooks Add(miss);worksheetdata = (Microsoft Office Interop Excel Worksheet)workbookdata Worksheets Add(miss miss miss miss);//给工作表赋名称worksheetdata Name = saved ;for (int i = ; i < dt Columns Count; i++)    worksheetdata Cells[ i + ] = dt Columns[i] ColumnName ToString();//因为第一行已经写了表头 所以所有数据都应该从a 开始rangedata = worksheetdata get_Range( a miss);Microsoft Office Interop Excel Range xlrang = null;//irowcount为实际行数 最大行int irowcount = dt Rows Count;int iparstedrow = icurrsize = ;//ieachsize为每次写行的数值 可以自己设置int ieachsize = ;//icolumnaccount为实际列数 最大列数int icolumnaccount = dt Columns Count;//在内存中声明一个ieachsize×icolumnaccount的数组 ieachsize是每次最大存储的行数 icolumnaccount就是存储的实际列数object[ ] objval = new object[ieachsize icolumnaccount];icurrsize = ieachsize;

  while (iparstedrow < irowcount)    if ((irowcount iparstedrow) < ieachsize)        icurrsize = irowcount iparstedrow;    //用for循环给数组赋值    for (int i = ; i < icurrsize; i++)            for (int j = ; j < icolumnaccount; j++)            objval[i j] = dt Rows[i + iparstedrow][j] ToString();        System Windows Forms Application DoEvents();        string X = A + ((int)(iparstedrow + )) ToString();    string col = ;    if (icolumnaccount <= )            col = ((char)( A + icolumnaccount )) ToString() + ((int)(iparstedrow + icurrsize + )) ToString();        else            col = ((char)( A + (icolumnaccount / ))) ToString() + ((char)( A + (icolumnaccount % ))) ToString() + ((int)(iparstedrow + icurrsize + )) ToString();        xlrang = worksheetdata get_Range(X col);    // 调用range的value 属性 把内存中的值赋给excel    xlrang Value = objval;    iparstedrow = iparstedrow + icurrsize;//保存工作表System Runtime InteropServices Marshal ReleaseComObject(xlrang);xlrang = null;//调用方法关闭excel进程appexcel Visible = true;

  方法二 (自己建函数 适合大批量资料 上万笔)using System IO;private void dataTableToCsv(DataTable table string file)    string title = ;    FileStream fs = new FileStream(file FileMode OpenOrCreate);    //FileStream fs = File Open(file FileMode Open FileAccess Read);    StreamWriter sw = new StreamWriter(new BufferedStream(fs) System Text Encoding Default);    for (int i = ; i < table Columns Count; i++)            title += table Columns[i] ColumnName + \\t ; //栏位 自动跳到下一单元格        title = title Substring( title Length ) + \\n ;    sw Write(title);    foreach (DataRow row in table Rows)            string line = ;        for (int i = ; i < table Columns Count; i++)                    line += row[i] ToString() Trim() + \\t ; //内容 自动跳到下一单元格                line = line Substring( line Length ) + \\n ;        sw Write(line);        sw Close();    fs Close();dataTableToCsv(dt @ c:\\ xls ); //调用函数System Diagnostics Process Start(@ c:\\ xls );  //打开excel文件

cha138/Article/program/net/201311/11464

相关参考

知识大全 SQL表中数据按条件批量导出多个Excel文件

SQL表中数据按条件批量导出多个Excel文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  S

知识大全 Excel导出时数据中有特殊字符的可能会出错

Excel导出时数据中有特殊字符的可能会出错  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  客户

知识大全 利用SQL*Loader将 Excel 数据导出到 Oracle 数据库中

利用SQL*Loader将Excel数据导出到Oracle数据库中  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 在C#中动态调用native dll的导出函数

在C#中动态调用nativedll的导出函数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在C

知识大全 ListView中的内容以Excel导出

ListView中的内容以Excel导出  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  <

知识大全 asp.net导出Excel方法总结

asp.net导出Excel方法总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 js导出格式化的excel 实例方法

最常见的方式是使用js函数操作excle文件这种方式可能因浏览器不同存在兼容性问题另一种简单方法就是导出一个excel能识别格式的xml文件用excel打开 复制代码代码如下:functio

知识大全 ASP导出Excel数据的四种方法

ASP导出Excel数据的四种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   一

知识大全 利用剪贴板实现高速导出数据到Excel

利用剪贴板实现高速导出数据到Excel  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在很多的时

知识大全 .NET导出Gridview到excel 带模板列显示

.NET导出Gridview到excel带模板列显示  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!