CreateExcel 导出Excel
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的更多相关文章
- 导出Excel通用工具类
导出Excel的两种方法: 一,POI 导入poi包 poi-3.11-beta3-20141111.jar /** * */ package com.car.ots.mpckp.utils; imp ...
- Java POI导入导出Excel
1.异常java.lang.NoClassDefFoundError: org/apache/poi/UnsupportedFileFormatException 解决方法: 使用的poi的相关jar ...
- NPOI导出Excel(含有超过65335的处理情况)
NPOI导出Excel的网上有很多,正好自己遇到就学习并总结了一下: 首先说明几点: 1.Excel2003及一下:后缀xls,单个sheet最大行数为65335 Excel2007 单个sheet ...
- 带复杂表头合并单元格的HtmlTable转换成DataTable并导出Excel
步骤: 一.前台JS取HtmlTable数据,根据设定的分隔符把数据拼接起来 <!--导出Excel--> <script type="text/javascript&qu ...
- nodejs 导出excel
nodejs 对查询数据生成excel并下载,采用方式先生成本excel文件,然后再下载:通过比较采用excel-export插件代码如下: excel.js代码: var extend = requ ...
- asp.net中导出Excel的方法
一.asp.net中导出Excel的方法: 本文转载 在asp.net中导出Excel有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出 ...
- [转] Asp.Net 导出 Excel 数据的9种方案
湛刚 de BLOG 原文地址 Asp.Net 导出 Excel 数据的9种方案 简介 Excel 的强大之处在于它不仅仅只能打开Excel格式的文档,它还能打开CSV格式.Tab格式.website ...
- asp.net中导出excel数据的方法汇总
1.由dataset生成 代码如下 复制代码 public void CreateExcel(DataSet ds,string typeid,string FileName) { Htt ...
- ASP.NET导出excel表方法汇总
asp.net里导出excel表方法汇总 1.由dataset生成 public void CreateExcel(DataSet ds,string typeid,string FileName) ...
随机推荐
- Oracle记录(二) SQLPlus命令
对于Oracle数据库操作主要使用的是命令行方式,而所有的命令都使用sqlplus完成,对于sqlplus有两种形式.就我个人而言,还是比较喜欢UNIX与Linux下的Oracle.呵呵 一种是dos ...
- Java [parms/options] range -b 100 -c 10 -i 100 -t 300 -s 180
3 down vote Just run the command java -X and you will get ans of all_ C:\Users\Admin>java -X -Xmi ...
- (转)C# Socket简单例子(服务器与客户端通信)
本文转载自:http://blog.csdn.net/andrew_wx/article/details/6629721 这个例子只是简单实现了如何使用 Socket 类实现面向连接的通信. 注意:此 ...
- ffmpeg综合应用示例(一)——摄像头直播
本文的示例将实现:读取PC摄像头视频数据并以RTMP协议发送为直播流.示例包含了 1.ffmpeg的libavdevice的使用 2.视频解码.编码.推流的基本流程 具有较强的综合性. 要使用liba ...
- loadrunner 学习 1 —— 关于loadrunner的安装/破解
从网上下载了loadrunner 11, .iso格式的镜像文件,百度一下,发现要用专门的软件才能在windows7 下安装 iso,我选的是 软件魔方. 安装完破解时,略有曲折, 主要是要以管理员的 ...
- 使用QuartZ.net来做定时计划任务 ; 值不能为 null。 参数名: assemblyString
1. 当异常的时候, 发现需要的类名, 没有取到, 然后就发生异常了 2. 分析: 业务层调用数据层, 数据层去掉配置的时候, 发现配置文件中根本就没有配置, 这个时候使用反射来取, 肯定是拿不到的, ...
- oracle 分析函数加order by的影响
create table test (id number(2), name varchar2(10), salary number(6,2));insert into test values (1,' ...
- Java 查询数据后进行递归操作
java的递归方法记录: private List<Map<String, Object>> generateOrgMapToTree(List<Map<Strin ...
- Struts2处理逻辑的方式
1.可以统一写一个action 对应方法名处理不同逻辑 2.也可以分别写Action 分别处理不同的逻辑
- PHP 环境安装
官方 http://www.php.net/ http://php.net/manual/zh/install.php http://php.net/manual/zh/index.php 下载也就是 ...