using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.OleDb;
using System.Web;
using System.Web.UI; namespace AIMSCommon
{
/// <summary>
/// 导出Excel帮助类
/// </summary>
public class ExcelHelper
{
/// <summary>
/// 创建系统异常日志
/// </summary>
//protected static LogHelper Logger = new LogHelper("ExcelHelper");
/// <summary>
/// Excel导出数据
/// </summary>
/// <param name="data">数据源</param>
/// <param name="fileName"></param>
public static void ExportExcel(DataTable data, string fileName)
{
try
{
if (data != null && data.Rows.Count > 0)
{
System.Web.HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
System.Web.HttpContext.Current.Response.Charset = "Utf-8";
System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName + ".xls", System.Text.Encoding.UTF8)); System.Text.StringBuilder sbHtml = new System.Text.StringBuilder();
sbHtml.AppendLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">");
sbHtml.AppendLine("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">"); //写出列名
sbHtml.AppendLine("<tr style=\"background-color: #FFE88C;font-weight: bold; white-space: nowrap;\">"); foreach (System.Data.DataColumn column in data.Columns)
{
sbHtml.AppendLine("<td>" + column.ColumnName + "</td>");
}
sbHtml.AppendLine("</tr>"); //写数据
foreach (System.Data.DataRow row in data.Rows)
{
sbHtml.Append("<tr>"); foreach (System.Data.DataColumn column in data.Columns)
{
sbHtml.Append("<td>").Append(row[column].ToString()).Append("</td>");
}
sbHtml.AppendLine("</tr>");
}
sbHtml.AppendLine("</table>");
System.Web.HttpContext.Current.Response.Write(sbHtml.ToString());
System.Web.HttpContext.Current.Response.End();
}
}
catch (Exception ex)
{
// Logger.WriteLog("-----------Excel导出数据异常-----------\r\n" + ex.ToString() + "\r\n");
}
} /// <summary>
/// 创建系统异常日志
/// </summary>
//protected static LogHelper Logger = new LogHelper("ExcelHelper");
/// <summary>
/// Excel导出数据
/// </summary>
/// <param name="data">数据源</param>
/// <param name="dataAnother">排班数据源</param>
/// <param name="fileName"></param>
public static void ExportExcel(DataTable data, DataTable dataAnother, string fileName)
{
try
{
if (data != null && data.Rows.Count > 0)
{
System.Web.HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
System.Web.HttpContext.Current.Response.Charset = "Utf-8";
System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName + ".xls", System.Text.Encoding.UTF8)); System.Text.StringBuilder sbHtml = new System.Text.StringBuilder();
sbHtml.AppendLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">");
sbHtml.AppendLine("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\" style=\" white-space: nowrap;word-break: keep-all;\">"); //写出列名
sbHtml.AppendLine("<tr style=\"background-color: #FFE88C;font-weight: bold;\">"); foreach (System.Data.DataColumn column in data.Columns)
{
sbHtml.AppendLine("<td>" + column.ColumnName + "</td>");
}
sbHtml.AppendLine("</tr>"); //写数据
foreach (System.Data.DataRow row in data.Rows)
{
sbHtml.Append("<tr>");
foreach (System.Data.DataColumn column in data.Columns)
{
sbHtml.Append("<td>").Append(row[column].ToString().Length>0?row[column].ToString():" ").Append("</td>");
}
sbHtml.AppendLine("</tr>");
}
sbHtml.AppendLine("<tr></tr>");
string duty = string.Empty;
foreach (DataRow row in dataAnother.Rows)
{
if (duty == string.Empty)
{
sbHtml.Append("<tr><td>").Append(row["duty"].ToString()).Append("</td><td colspan='" + (data.Columns.Count - 1) + "'>").Append(row["NURSE_NAME"].ToString() + "   ");
}
else if (duty != row["duty"].ToString() && duty != string.Empty)
{
sbHtml.Append("</td></tr><tr><td>").Append(row["duty"].ToString()).Append("</td><td colspan='" + (data.Columns.Count - 1) + "'>").Append(row["NURSE_NAME"].ToString() + "   ");
}
else if (duty == row["duty"].ToString())
{
sbHtml.Append(row["NURSE_NAME"].ToString() + "   ");
}
duty = row["duty"].ToString();
}
sbHtml.Append("</td></tr>");
sbHtml.AppendLine("</table>");
System.Web.HttpContext.Current.Response.Write(sbHtml.ToString());
System.Web.HttpContext.Current.Response.End();
}
}
catch (Exception ex)
{
// Logger.WriteLog("-----------Excel导出数据异常-----------\r\n" + ex.ToString() + "\r\n");
}
}
/// <summary>
/// Excel检查版本
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
private static string ConnectionString(string fileName)
{
bool isExcel2003 = fileName.EndsWith(".xls");
string connectionString = string.Format(
isExcel2003
? "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0;"
: "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES\"",
fileName);
return connectionString;
}
/// <summary>
/// Excel导入数据源
/// </summary>
/// <param name="sheet">sheet</param>
/// <param name="filename">文件路径</param>
/// <returns></returns>
public static DataTable ExcelToDataSet(string sheet, string filename)
{
try
{
DataSet ds;
OleDbConnection myConn = new OleDbConnection(ConnectionString(filename));
string strCom = " SELECT * FROM [" + sheet + "$]";
myConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
ds = new DataSet();
myCommand.Fill(ds);
myConn.Close();
return ds.Tables[0];
}
catch (Exception ex)
{
//Logger.WriteLog("-----------Excel导入数据异常-----------\r\n" + ex.ToString() + "\r\n");
return null;
}
} }
}

导出Excel帮助类的更多相关文章

  1. 导入导出Excel工具类ExcelUtil

    前言 前段时间做的分布式集成平台项目中,许多模块都用到了导入导出Excel的功能,于是决定封装一个ExcelUtil类,专门用来处理Excel的导入和导出 本项目的持久化层用的是JPA(底层用hibe ...

  2. MVC NPOI Linq导出Excel通用类

    之前写了一个模型导出Excel通用类,但是在实际应用中,可能不是直接导出模型,而是通过Linq查询后获取到最终结果再导出 通用类: public enum DataTypeEnum { Int = , ...

  3. NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中

    以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...

  4. javaEE开发之导出excel工具类

    web开发中,一个系统的普通需求也包含导出excel,一般採用POI做统计报表导出excel. 导出excel工具类: import java.io.FileOutputStream; import ...

  5. Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

    Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...

  6. NPOI MVC 模型导出Excel通用类

    通用类: public enum DataTypeEnum { Int = , Float = , Double = , String = , DateTime = , Date = } public ...

  7. NPOI导出Excel帮助类

    工具类 using System; using System.Collections.Generic; using System.Data; using System.IO; using System ...

  8. java导出excel工具类

    java导出excel须要使用HSSFWorkbook这个类,须要导入poi-3.6-20091214.jar 工具类调用例如以下: package com.qlwb.business.util; i ...

  9. Java XSSF 导出excel 工具类

    参数解释: title:导出excel标题.headers 导出到excel显示的列头. columns 对应数据库字段 .list 导出数据1.pox中添加依赖 <dependency> ...

随机推荐

  1. javascript高级编程笔记04(基本概念)

    Function类型 Es5中规范了另一个函数对象的属性:caller,这个属性中保存着调用当前函数的函数的引用,如果是在全局作用域中调用当前函数,这它的值为null function outer() ...

  2. Linux学习笔记(2)-用户和用户组

    用户(user)和用户组(group)概念 linux是一个多用户操作系统,他允许多个用户登录linux系统进行各自不同的操作.为了方便管理用户不同的权限,组的概念应用而生,一个组可以包含多个用户,共 ...

  3. mysql 增加删除用户

    mysql 增加用户 (注意:因为MYSQL环境中的命令,所以后面都带一个分号作为命令结束符) 格式:grant select on 数据库.* to 用户名@登录主机 identified by ' ...

  4. js按钮点击展开收起

    $('.tab').click(function(){ var index = $('.tab').index(this), //缓存第一次点击的li的索引值 ele = $(this).find(' ...

  5. hdu 3927 Math Geek

    纯数论题,不解释!!!! 代码如下: #include<stdio.h> int main(){ ,m; scanf("%d",&t); while(t--){ ...

  6. Android 国际化文字

    本例演示中英文切换 在resource文件夹添加values-zh,这个文件夹对应中文环境的values文件夹,然后添加strings.xml: <?xml version="1.0& ...

  7. Amzon MWS API开发之订单接口

    Amazon订单接口是Amazon MWS 开发接口中的一大块,我们可以通过接口调用来获得订单数据. 在调用接口之前,首先我们要获得相关店铺商家的店铺密钥等信息.如下: 在此我将所有信息定义在一个类中 ...

  8. 深入剖析Classloader(二)--根类加载器,扩展类加载器与系统类加载器

    原文地址:http://yhjhappy234.blog.163.com/blog/static/31632832201152555245584/?suggestedreading&wumii ...

  9. 李洪强iOS开发本人集成环信的经验总结_08_自动登录补充

    李洪强iOS开发本人集成环信的经验总结_08_自动登录补充 来到Appdelegate里面 01 - 遵守自动登录的代理协议 02 - 设置自动登录的代理 03 - 判断与实现  04 - 代理方法的 ...

  10. 版本管理工具介绍—Git篇

    前篇 如题,提起版本管理工具相信做C#开发 还是对Git比较陌生  我们可能更熟悉vss.svn 记录此文的目的 更是为以后的前段学习做基础  现在的技术比如nodeJs  angularJs ==都 ...