问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C#中datatabel导出excel(三种方法)

发布网友 发布时间:2023-01-05 16:16

我来回答

1个回答

热心网友 时间:2023-10-16 04:50

  方法一 (拷贝直接可以使用 适合大批量资料 上万笔)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文件

lishixin/Article/program/net/201311/11464
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
y53s手机参数及价格 vivoy53s5g手机参数 五粮液五粮印象精制52度浓香型白酒500ml 五粮液 五粮印象 精制 52度 浓香型白酒 500ml-详细介绍 五粮液 五粮印象 精制 52度 浓香型白酒 500ml-购买最佳价格 五粮液 五粮印象 精制 52度 浓香型白酒 整箱装-详细介绍 五粮液五粮印象珍品-适用对象 白酒推荐-五粮液五粮印象珍品52%vol浓香型白酒500ml单瓶装 五粮液五粮印象精制52度浓香型白酒-适用对象 星座血型生肖分析摩羯座属蛇A型 秀球花花蔫干脱落咋回事呀 秀球花篶了怎么回事 为什么钉钉存不了文字表情 使用含氯消毒剂进行环境物表消毒时,需作用几分钟 配置好的含氯消毒液有效期为一周 物之不齐,物之情也。 物之不齐物之情也是什么意思 top表示顶端的时候可数吗 平板飞机大厨闪退怎么办 华为荣耀7i手写反应慢 安装IE11时出现下列提示,怎么解决?求助 PS怎么才可以去皱纹 羽绒服内搭什么好看 htc m9+手机怎么样恢复出厂设置 怎么用计算器开N次方根? 黄金足金999和9999的有啥区别呢 黄金9999和999哪个值钱? 到发郎,找按摩的,有什么暗语没有?怎么还价 excel怎么设置下拉选项多选,一次选多个? 中学生必读名著有那12本? 肯德基的员工待遇怎么样? 肯德基的送餐员待遇怎么样? 上海肯德基骑手工资待遇 大熊猫怎么爬树的(大熊猫怎么爬树的描写) 木字旁一个春念什么 写熊猫是怎样爬树的76个字一篇短文 平板内置电池是什么 梦见我穿白大褂 梦见自己穿白大褂 梦见自己穿白褂子 梦见我穿医生白大褂 梦见自己穿白大褂教学 梦见自己晚上穿白大褂在老家 qq怎么设置两重密码 办临时身份证去哪里办理 为什么陕西盛产花椒而有些陕西人却不怎么吃花椒呢? uefi启动需要fat16/fat32分区怎么办 海尔T68D笔记本如何设定在合上电脑时自动关机 海尔笔记本电脑t68关不了机 求两首唐代描写战争的古诗