public class CreateExcel
{ /// <summary>
/// 用Excel组件导出Excel文件
/// </summary>
/// <param name="path"></param>
/// <param name="datable"></param>
/// <param name="msg"></param>
/// <returns></returns>
public static bool SaveExcel(string path,DataSet datable,ref string msg)
{ Application exlApp = new ApplicationClass(); if (exlApp == null)
{
msg = "Excel 未安装或无法启动!";
return false;
} Workbook exlworke = exlApp.Workbooks.Add(true);
Worksheet exlworkSheet =(Worksheet)exlworke.ActiveSheet; int colunindex = ;
int rowindex = ;
int colunCount = datable.Tables[].Columns.Count;
int rowCount = datable.Tables[].Rows.Count; Range exlrange = exlworkSheet.get_Range(exlApp.Cells[, ], exlApp.Cells[, colunCount]);
exlrange.MergeCells = true;
exlApp.ActiveCell.FormulaR1C1 = "操作人: " + msg + " 导出时间:" + System.DateTime.Now.ToLongDateString();
exlApp.ActiveCell.Font.Size = ;
exlApp.ActiveCell.Font.Bold = true;
exlApp.ActiveCell.HorizontalAlignment = Constants.xlCenter; object[,] obneed = new object[rowCount + , colunCount + ]; foreach (DataColumn dc in datable.Tables[].Columns)
{
obneed[rowindex, colunindex++] = dc.ColumnName;
}
rowindex++; foreach (DataRow dr in datable.Tables[].Rows)
{
for(colunindex=;colunindex<colunCount;colunindex++)
{
obneed[rowindex, colunindex] = dr[colunindex];
}
rowindex++;
} exlrange = exlworkSheet.get_Range(exlApp.Cells[, ], exlApp.Cells[rowCount+, colunCount]);//标题和标头+2
exlrange.Value2 = obneed; try
{
exlworke.Saved = true;
exlworke.SaveCopyAs(path);
}
catch
{
msg = "保存失败!";
}
finally
{
exlApp.Quit();
GC.Collect();
}
msg = "导出成功!";
return true;
}
/// <summary>
/// 使用数据流导出Excel文件
/// </summary>
/// <param name="path"></param>
/// <param name="datable"></param>
/// <param name="msg"></param>
/// <returns></returns>
public static bool SaveIOExcel(string path, DataSet datable, ref string msg)
{ int colunindex = ;
int colunCount = datable.Tables[].Columns.Count;
int rowCount = datable.Tables[].Rows.Count;
try
{
using (FileStream flStream = new FileStream(path, FileMode.Create, FileAccess.Write))
{
using (StreamWriter sw = new StreamWriter(flStream, System.Text.Encoding.GetEncoding(-)))
{
StringBuilder strb = new StringBuilder();
for (colunindex = ; colunindex < colunCount; colunindex++)
{
strb.Append(datable.Tables[].Columns[colunindex].ColumnName).Append("\t");
}
strb.AppendLine();
foreach (DataRow dr in datable.Tables[].Rows)
{
for (colunindex = ; colunindex < colunCount; colunindex++)
{
strb.Append(dr[colunindex]).Append("\t");
}
strb.AppendLine();
}
strb.AppendLine("操作人: " + msg + " 导出时间:" + System.DateTime.Now.ToLongDateString());
sw.Write(strb.ToString());
} }
}
catch
{
msg = "转换失败!";
return false;
}
msg = "导出成功!";
return true;
}
}

CreateExcel 导出Excel的更多相关文章

  1. 导出Excel通用工具类

    导出Excel的两种方法: 一,POI 导入poi包 poi-3.11-beta3-20141111.jar /** * */ package com.car.ots.mpckp.utils; imp ...

  2. Java POI导入导出Excel

    1.异常java.lang.NoClassDefFoundError: org/apache/poi/UnsupportedFileFormatException 解决方法: 使用的poi的相关jar ...

  3. NPOI导出Excel(含有超过65335的处理情况)

    NPOI导出Excel的网上有很多,正好自己遇到就学习并总结了一下: 首先说明几点: 1.Excel2003及一下:后缀xls,单个sheet最大行数为65335 Excel2007 单个sheet ...

  4. 带复杂表头合并单元格的HtmlTable转换成DataTable并导出Excel

    步骤: 一.前台JS取HtmlTable数据,根据设定的分隔符把数据拼接起来 <!--导出Excel--> <script type="text/javascript&qu ...

  5. nodejs 导出excel

    nodejs 对查询数据生成excel并下载,采用方式先生成本excel文件,然后再下载:通过比较采用excel-export插件代码如下: excel.js代码: var extend = requ ...

  6. asp.net中导出Excel的方法

    一.asp.net中导出Excel的方法: 本文转载 在asp.net中导出Excel有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出 ...

  7. [转] Asp.Net 导出 Excel 数据的9种方案

    湛刚 de BLOG 原文地址 Asp.Net 导出 Excel 数据的9种方案 简介 Excel 的强大之处在于它不仅仅只能打开Excel格式的文档,它还能打开CSV格式.Tab格式.website ...

  8. asp.net中导出excel数据的方法汇总

    1.由dataset生成 代码如下 复制代码 public void CreateExcel(DataSet ds,string typeid,string FileName)    {    Htt ...

  9. ASP.NET导出excel表方法汇总

    asp.net里导出excel表方法汇总  1.由dataset生成 public void CreateExcel(DataSet ds,string typeid,string FileName) ...

随机推荐

  1. VM 修改 virtualHW.version

    1.修改BT5R3-GNOME-VM-32.vmdk文件 将encoding="windows-1252"修改为encoding="GBK" 将ddb.virt ...

  2. MongoDB部署实战(一)MongoDB在windows平台分片集群部署

    前言-为什么我要使用mongodb 最近我公司要开发一个日志系统,这个日志系统包括很多类型,错误的,操作的,...用MongoDB存储日志,大量的日志产生,大量读写吞吐量很大的时候,单个Server很 ...

  3. Vue.js:起步

    ylbtech-Vue.js:起步 1.返回顶部 1. Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现. 语法格式如下: var vm = new Vue({ // 选项 }) ...

  4. PL/SQL 训练13--plsql 优化

    --数据缓存技术 --PGA和SGA---SGA:系统全局区域--PGA:Process Global Area是为每个连接到Oracle的用户进程保留的内存. ---PLSQL从PGA获取信息的速度 ...

  5. JS比较实用的时间控件

    使用方法: 下载下来压缩包,文件的地方不要改变,就可以了 http://www.my97.net/dp/down.asp html的代码: <input readonly="reado ...

  6. tomcat7.0在centos7下中文乱码问题解决汇总

    1. 系统级的中文设置 Centos7跟之前的6和5安装的中文字符命令都不一样 [root@iZ25bdzgev8Z ~]# locale #查看当前系统的语言环境 [root@iZ25bdzgev8 ...

  7. python学习(十二) 图形化用户界面

    12.1 丰富的平台 12.2 下载和安装wxPython 12.3 创建示例GUI应用程序 12.3.1 开始 12.3.2 窗口和组件 12.3.3 标签.标题和位置 12.3.4 更智能的布局 ...

  8. ansible里的item和with_items

    ################################## 变量命名 变量名仅能由字母.数字和下划线组成且只能以字母开头. ################################# ...

  9. linux之fstab文件详解

    /etc/fstab是用来存放文件系统的静态信息的文件.位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /etc/fstab 来修改. 当系统启 ...

  10. Android Eclipse调试技巧

    在Android 应用程序开发中我们经常需要调试程序,可以说调试在我们的日常开发中起着十分重要的作用,下面就以Elipse开发环境总结一下调试技巧. 一.Debug 断点调试 所谓断点调试就是指在程序 ...