zoukankan      html  css  js  c++  java
  • 所见即所得的Excel报表生成(一)——获取Html table结构

      最近做一个小的报表系统,功能本身没什么。最后客户要求一个打印功能,所谓打印,就是按照页面上报表的样子,一模一样的为其生成Excel文件。

      再也不想为了构造结构一样的Excel表格而再次考虑繁琐数据逻辑了!于是乎冒出了这样的一个想法:我要是能获得页面上的报表table,那么只要分析其结构,不就可以构造出相应的Excel表格来吗?

      思来想去,觉得这应该是一条可以走的通的路,于是便着手寻找实现的办法。终于,发现WebRequest和WebResponse,其分别代表一个Web请求和服务器基于请求的回应,而这个回应包含服务器返回的数据流,从数据流便可获取想要的报表table。

      整个Excel生成功能的思路如下图所示:

      涉及WebRequest、WebResponse的核心代码如下:

     1     WebRequest wr = WebRequest.Create(psUrl);
     2     HttpWebRequest oRequest = wr as HttpWebRequest;
     3     if (null == oRequest) return null;
     4 
     5     HttpWebResponse oResponse  ;= (HttpWebResponse) oRequest.GetResponse();
     6     string sResponseContent = string.Empty;
     7     if (oResponse.StatusCode == HttpStatusCode.OK)
     8     { 
     9         using (StreamReader sr = new StreamReader(oResponse.GetResponseStream(),Encoding.UTF8))
    10         {
    11             sResponseContent = sr.ReadToEnd();      //sResponseContent,保存了服务器返回的数据流字符串内容
    12             sr.Close();
    13         }
    14     }
    15     oResponse.Close();

      特别需要说明的是,在从数据流向字符串转化的过程中,其内会残留许多\r\t之类的转义字符,我们需要将其剔除。

    1      sResponseContent  = Regex.Replace (sResponseContent, "[\n\r\t] """);

      本篇至此,下篇将着重介绍table到Excel cell的转化过程。

      附示例代码:ExcelGenerator.rar 

      相关文章:所见即所得的Excel报表生成(二)——从Html table到Excel Cell

  • 相关阅读:
    android:sharedUserId
    SystemProperties cannot be resolved错误
    Mybatis(二)|搭建mybatis环境之注解版-简单搭配
    Eclipse构建Maven的SpringMVC项目
    IDEA新手使用教程(详解)(经典)
    IntelliJ IDEA 教程
    用注解的方式实现Mybatis插入数据时返回自增的主键Id
    eclipse使用git提交项目
    eclipse中使用自带git的常用操作
    myeclipse10.7安装git插件
  • 原文地址:https://www.cnblogs.com/isun/p/1992594.html
Copyright © 2011-2022 走看看