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) ...
随机推荐
- Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?
python3.6.3 我在处理爬虫时候使用BeautifulSoup中遇到报错 “ bs4.FeatureNotFound: Couldn't find a tree builder with t ...
- 关于Python导入其他目录中的类
在需要导入的某个类的目录中,添加一个__init__.py的文件,
- nginx 配置隐藏index.php效果
location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; } } 完整如下 server { li ...
- 概念与用法-cookie,session,auth (认证系统)
COOKIE 与 SESSION 概念 cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. cookie ...
- 如何正确且成功破解跨平台数据库管理工具DbVisualizer?(图文详解)
前期博客 基于JDBC的跨平台数据库管理工具DbVisualizer安装步骤(图文详解)(博主推荐) 上图,所示,说明这个还只是免费版而已,没又破解为Pro版本. 接下来,就是带领大家如何正确且成功破 ...
- 安全测试之session,cookie
session session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息.•但程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这 ...
- Python多线程-事件
线程事件用于线程控制线程,实现多个进程间的交互,线程事件的初始值为False set:将线程事件的值设为True clear:将线程事件的值设为False # -*- coding:utf-8 -*- ...
- mysql忘记root密码的处理方法
在linux下,如果忘记了mysql中root用户的密码可以采用以下办法解决. 1. 修改my.cnf,加入skip-grant-tables 修改mysql的配置文件my.cnf,在[mysqld] ...
- keil的使用:新建Project
新建项目--->新建文件夹----->把新建的项目放在自己的文件夹中------>选择开发板------>添加开发板的驱动文件---->main函数 项目分组基本如图,S ...
- 在.jsp中非表单请求action的几种方式总结
转自:https://www.jb51.net/article/35621.htm 1 一: 复制代码 代码如下: <a href="userAction.do?flag=user_r ...