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. 区间型动规--石子归并(Pascal)

    题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1].问安排怎样的合并顺序,能够使 ...

  2. sql之透视

    1.透视原理:就是将查询结果进行转置 下面就举例来说明: 执行下面语句:检查是否含有表 dbo.Orders,如果有就将表删除: if OBJECT_ID('dbo.Orders','U') is n ...

  3. DataTableExtensions.AsEnumerable 方法

    在下面的示例中,DisplayProducts 方法接收一个数据表,其中包含名为 ProductName一个 DataColumn,提取 ProductName 值,然后输出值. using Syst ...

  4. python字符串截取与替换的例子

    python字符串截取与替换的多种方法 时间:2016-03-12 20:08:14来源:网络 导读:python字符串截取与替换的多种方法,以冒号分隔的字符串的截取方法,python字符串替换方法, ...

  5. springMVC+MyBatis+Spring 整合(3)

    spring mvc 与mybatis 的整合. 加入配置文件: spring-mybaits.xml <?xml version="1.0" encoding=" ...

  6. @Entity设置实体lazy = false

    问题描述 在通过Hibernate查询Bean信息时报以下异常信息: org.hibernate.LazyInitializationException: could not initialize p ...

  7. uva 558 Bellman_Ford

    Bellman_Ford算法   求图中是否存在负权值的回路   若图中不存在   则最短路最多经过n-1个结点   若经过超过n-1个节点 则存在负权值的回路  此图永远无法找到最短路  每条边最多 ...

  8. [BEC][hujiang] Lesson02 Unit1:Working life ---Reading

    2 1.1Working Life p7 reading attitudes to work Question6: 对于Attitude问题 1 I be willing/ unwilling to ...

  9. http://jingyan.baidu.com/article/a3761b2b66fe141577f9aa51.html

    http://jingyan.baidu.com/article/a3761b2b66fe141577f9aa51.html

  10. cocos2d-x3.9 NDK android 环境搭建过程中遇到的错误

    编译环境:Mac OS, NDK r9d 错误:arm-linux-androideabi-gcc: error trying to exec '/media/Project/adt-bundle-l ...