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 = 0;
int rowindex = 0;
int colunCount = datable.Tables[0].Columns.Count;
int rowCount = datable.Tables[0].Rows.Count;

Range exlrange = exlworkSheet.get_Range(exlApp.Cells[1, 1], exlApp.Cells[1, colunCount]);
exlrange.MergeCells = true;
exlApp.ActiveCell.FormulaR1C1 = "操作人: " + msg + " 导出时间:" + System.DateTime.Now.ToLongDateString();
exlApp.ActiveCell.Font.Size = 10;
exlApp.ActiveCell.Font.Bold = true;
exlApp.ActiveCell.HorizontalAlignment = Constants.xlCenter;

object[,] obneed = new object[rowCount + 1, colunCount + 1];

foreach (DataColumn dc in datable.Tables[0].Columns)
{
obneed[rowindex, colunindex++] = dc.ColumnName;
}
rowindex++;

foreach (DataRow dr in datable.Tables[0].Rows)
{
for(colunindex=0;colunindex<colunCount;colunindex++)
{
obneed[rowindex, colunindex] = dr[colunindex];
}
rowindex++;
}

exlrange = exlworkSheet.get_Range(exlApp.Cells[2, 1], exlApp.Cells[rowCount+2, 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 = 0;
int colunCount = datable.Tables[0].Columns.Count;
int rowCount = datable.Tables[0].Rows.Count;
try
{
using (FileStream flStream = new FileStream(path, FileMode.Create, FileAccess.Write))
{
using (StreamWriter sw = new StreamWriter(flStream, System.Text.Encoding.GetEncoding(-0)))
{
StringBuilder strb = new StringBuilder();
for (colunindex = 0; colunindex < colunCount; colunindex++)
{
strb.Append(datable.Tables[0].Columns[colunindex].ColumnName).Append("\t");
}
strb.AppendLine();
foreach (DataRow dr in datable.Tables[0].Rows)
{
for (colunindex = 0; 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,布布扣,bubuko.com

时间: 2024-12-21 22:10:40

CreateExcel 导出Excel的相关文章

C# asp.net 实现导出Excel

转自http://www.cnblogs.com/zhangjd/p/5673950.html 这段时间用到了导出Excel的功能,这个功能还是比较常用的,我常用的有两个方法,现在整理一下,方便以后查看. 一.实现DataTable数据导出到本地,需要自己传进去导出的路径. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 /// <summary> /// DataTable导出到Exc

Struts2+ExtJS+poi导出excel

首先生成Excel import java.io.IOException; import java.io.OutputStream; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.

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

步骤: 一.前台JS取HtmlTable数据,根据设定的分隔符把数据拼接起来 <!--导出Excel--> <script type="text/javascript"> //导出Excel function exportExcel() { var data = ""; $("#divRptTable").find("table").find("tr").each(function

[转]Excel.dll 导出Excel控制

Excel.dll 导出Excel控制 2010-06-12 11:26 2932人阅读 评论(2) 收藏 举报 excelmicrosoftstring产品服务器google 最近做了个导出Excel的程序! 那个心烦啊. 开始要求是直接将gridview导出成Excel,简单! 这样就可以解决了! 但要重写个 方法 才能导出 private void ToExcel(Control ctl, string FileName)         {             HttpContext

npoi实现数据导出Excel

npoi .NET第三方的Office功能组件. 链接地址 http://npoi.codeplex.com/ 引用命名空间 using NPOI.HSSF.UserModel; using NPOI.HPSF; using NPOI.POIFS.FileSystem; using NPOI.SS.UserModel; 功能代码 /// <summary> /// 操作EXCEL导出数据报表的类 /// </summary> public class DataToExcel { /

Java程序实现导出Excel,支持IE低版本

来博客园两年多了,最近才开通了微博,因为懒所以也一直没有写东西,今天想整理一下自己前段时间遇到的一个导出的问题. 因为项目的需求,要做一部分导出功能.开始的时候用的公司的导出,但是很奇怪有部分模块导出的时候就是会报500错误,发现在删减一些字段后就恢复了正常,当时因为项目紧张,也就临时删减了一些,但也不是长久之计,之后自己在原本的基础上重新修改整理了一下,目前运行还算稳定,就此和大家分享一下. 导出需要三个部分,js,公共方法,后台方法. js代码 1 function exportData()

nodejs 导出excel

nodejs 对查询数据生成excel并下载,采用方式先生成本excel文件,然后再下载:通过比较采用excel-export插件代码如下: excel.js代码: var extend = require("extend");var fs = require("fs");var excelExport = require('excel-export');var guid=require('guid');var path=require('path'); var e

XML格式导出Excel

下面介绍一种导出Excel的方法: 此方法不需要在服务器上安装Excel,采用生成xml以excel方式输出到客户端,可能需要客户机安装excel,所以也不会有乱七八糟的权限设定,和莫名其妙的版本问题.而且此种方法比第二种更快试了下10W条数据(20列)不到10秒(小白pc). protected void Btn_Up(object sender, EventArgs e) { Response.Clear(); Response.Buffer = true; Response.AppendH

公司项目笔记-导出excel

一.asp.net中导出Excel的方法:在asp.net中导出Excel有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出流写给浏览器.在Response输出时,t分隔的数据,导出Excel时,等价于分列,n等价于换行. 1.将整个html全部输出Excel此法将html中所有的内容,如按钮,表格,图片等全部输出到Excel中. Response.Clear();        Response.Buffer=   true;