`
anson_xu
  • 浏览: 513341 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类

java 生成excel

    博客分类:
  • java
阅读更多
1.类文件makexls
package com;
import java.io.File;
import java.sql.*;
import java.util.Calendar;
import com.custom.util.ConnectionCustom;

import jxl.Workbook;
import jxl.write.*;

// Referenced classes of package com:
//            connection

public class makexls
{

    public makexls()
    {
        DBconn = new ConnectionCustom();
        conn = DBconn.getConnection();
        stmt = null;
        stmt1 = null;
        rs = null;
        rs1 = null;
        cu = 0;
        path1 = "";
        bigstr = "";
    }

     public static String replaceString(String s, String s1, String s2)
    {
        byte byte0 = -1;
        boolean flag = false;
        int j = s1.length();
        StringBuffer stringbuffer = new StringBuffer();
        for(int i = s.indexOf(s1); i != -1; i = s.indexOf(s1))
        {
            stringbuffer.append(s.substring(0, i));
            stringbuffer.append(s2);
            s = s.substring(i + j);
        }

        stringbuffer.append(s);
        return stringbuffer.toString();
    }

    public String nowServerTime()
    {
        Calendar calendar = Calendar.getInstance();
        String s = String.valueOf(calendar.get(1));
        String s1 = String.valueOf(calendar.get(2) + 1);
        String s2 = String.valueOf(calendar.get(5) + 1);
        String s3 = String.valueOf(calendar.get(10));
        String s4 = String.valueOf(calendar.get(12));
        String s5 = String.valueOf(calendar.get(13));
        s1 = Integer.parseInt(s1) > 9 ? s1 : "0" + s1;
        s2 = Integer.parseInt(s2) > 9 ? s2 : "0" + s2;
        String s6 = String.valueOf((int)(Math.random() * 100000D));
        String s7 = "_" + s6 + "_" + s + s1 + s2 + s3 + s4 + s5;
        return s7;
    }

    public String makexls(String s, String s1, String s2, String as[])
    {
        try
        {
            String s3 = s;
            File file = new File(s3);
            String as1[] = file.list();
            for(int i = 0; i < as1.length; i++)
                if(as1[i].length() >= 21)
                {
                    String s6 = as1[i].substring(13, 21);
                    Calendar calendar = Calendar.getInstance();
                    int j = calendar.get(5);
                    calendar.set(5, j - 3);
                    int k = calendar.get(1);
                    int l = calendar.get(2) + 1;
                    int j1 = calendar.get(5);
                    String s7 = String.valueOf(k) + (l > 9 ? String.valueOf(l) : "0" + String.valueOf(l)) + (j1 > 9 ? String.valueOf(j1) : "0" + String.valueOf(j1));
                    if(s6.compareTo(s7) <= 0)
                    {
                        File file1 = new File(s3 + "/" + as1[i]);
                        file1.delete();
                    }
                }

        }
        catch(Exception exception) { }
        String s4 = "";
        try
        {
            Workbook workbook = Workbook.getWorkbook(new File(s1));
            path1 = s + "result" + nowServerTime() + ".xls";
            WritableWorkbook writableworkbook = Workbook.createWorkbook(new File(path1), workbook);
            WritableSheet writablesheet = writableworkbook.getSheet(0);
            jxl.write.WritableCell writablecell = writablesheet.getWritableCell(0, 0);
            ResultSetMetaData resultsetmetadata = null;
            stmt = conn.createStatement();
            stmt1 = conn.createStatement();
            try
            {
            //System.out.println("s2==sql==="+s2);
                rs = stmt.executeQuery(s2);
                if(rs.next())
                    resultsetmetadata = rs.getMetaData();
                //System.out.println("resultsetmetadata========="+resultsetmetadata.getColumnCount());//得到结果集(rs)的结构信息,比如字段数、字段名等。
            }
            catch(Exception exception2)
            {
                rs = null;
            }
            boolean flag = false;
            if(rs != null)
            {
                for(int i1 =1;i1 <= resultsetmetadata.getColumnCount(); i1++)
                {
                    Label label = new Label(i1 - 1, 0, as[i1 - 1]);
                    writablesheet.addCell(label);
                    //rs.beforeFirst();
                    cu = 0;
                    Label label1;
                    int j=0;
                    rs1 = stmt1.executeQuery(s2);
                    for(; rs1.next(); writablesheet.addCell(label1))
                    {
                   
                    //System.out.println(j);
                        cu = cu + 1;
                        String s5 = rs1.getString(resultsetmetadata.getColumnName(i1)) == null ? "" : rs1.getString(resultsetmetadata.getColumnName(i1));
s5=replaceString(s5,"&quot;","\"");
s5=replaceString(s5,"&acute;","\'");
s5=replaceString(s5,"&#34;","\"");
s5=replaceString(s5,"&#39;","\'");
                        label1 = new Label(i1 - 1, cu, s5);
                        j++;
                    }

                }

            }
            rs1.close();
            rs.close();
            writableworkbook.write();
            writableworkbook.close();
            workbook.close();
        }
        catch(Exception exception1)
        {
            exception1.printStackTrace();
        }
        return path1;
    }
    public String makexlsWidthConn(String s, String s1, String s2, String as[],Connection conn1)
    {
    try
    {
    String s3 = s;
    File file = new File(s3);
    String as1[] = file.list();
    for(int i = 0; i < as1.length; i++)
    if(as1[i].length() >= 21)
    {
    String s6 = as1[i].substring(13, 21);
    Calendar calendar = Calendar.getInstance();
    int j = calendar.get(5);
    calendar.set(5, j - 3);
    int k = calendar.get(1);
    int l = calendar.get(2) + 1;
    int j1 = calendar.get(5);
    String s7 = String.valueOf(k) + (l > 9 ? String.valueOf(l) : "0" + String.valueOf(l)) + (j1 > 9 ? String.valueOf(j1) : "0" + String.valueOf(j1));
    if(s6.compareTo(s7) <= 0)
    {
    File file1 = new File(s3 + "/" + as1[i]);
    file1.delete();
    }
    }
   
    }
    catch(Exception exception) { }
    String s4 = "";
    try
    {
    Workbook workbook = Workbook.getWorkbook(new File(s1));
    path1 = s + "result" + nowServerTime() + ".xls";
    WritableWorkbook writableworkbook = Workbook.createWorkbook(new File(path1), workbook);
    WritableSheet writablesheet = writableworkbook.getSheet(0);
    jxl.write.WritableCell writablecell = writablesheet.getWritableCell(0, 0);
    ResultSetMetaData resultsetmetadata = null;
    stmt = conn1.createStatement();
    stmt1 = conn1.createStatement();
    try
    {
    //System.out.println("s2==sql==="+s2);
    rs = stmt.executeQuery(s2);
    if(rs.next())
    resultsetmetadata = rs.getMetaData();
    //System.out.println("resultsetmetadata========="+resultsetmetadata.getColumnCount());//得到结果集(rs)的结构信息,比如字段数、字段名等。
    }
    catch(Exception exception2)
    {
    rs = null;
    }
    boolean flag = false;
    if(rs != null)
    {
    for(int i1 =1;i1 <= resultsetmetadata.getColumnCount(); i1++)
    {
    Label label = new Label(i1 - 1, 0, as[i1 - 1]);
    writablesheet.addCell(label);
    //rs.beforeFirst();
    cu = 0;
    Label label1;
    int j=0;
    rs1 = stmt1.executeQuery(s2);
    for(; rs1.next(); writablesheet.addCell(label1))
    {
   
    //System.out.println(j);
    cu = cu + 1;
    String s5 = rs1.getString(resultsetmetadata.getColumnName(i1)) == null ? "" : rs1.getString(resultsetmetadata.getColumnName(i1));
    s5=replaceString(s5,"&quot;","\"");
    s5=replaceString(s5,"&acute;","\'");
    s5=replaceString(s5,"&#34;","\"");
    s5=replaceString(s5,"&#39;","\'");
    label1 = new Label(i1 - 1, cu, s5);
    j++;
    }
   
    }
   
    }
    rs1.close();
    rs.close();
    writableworkbook.write();
    writableworkbook.close();
    workbook.close();
    }
    catch(Exception exception1)
    {
    exception1.printStackTrace();
    }
    return path1;
    }

    private ConnectionCustom DBconn;
    private Connection conn;
    Statement stmt;
    Statement stmt1;
    ResultSet rs;
    ResultSet rs1;
    int cu;
    String path1;
    String bigstr;
}


2.调用
String[] listTitle=new String[]{"産品編號","産品版本","客戶産品編號","倉點編號","入倉時間","入倉單號","單重 ","單價","本期結存"," ","0---30天"," ","","31---60天 "," ","","61---90天 "," ","","61---90天"," ","","121---150天 "," ","","151---180天 "," ","","181---210天 "," ","","211---240天"," ",""," 241---270天"," ","","271---300天 "," ","","301---330天 "," ","","331---360天 "," ","","361天以上 "," ","總結遇","總重","總價"};

String modefile="2005031017198.xls";//一个空excel文件
String path3=request.getRealPath("/report/template/");//空excel文件路径
path3=path3+"/";
String mopa=request.getRealPath("/report/report/");//生成excel保存路径
mopa=mopa+"/";
String mfile=path3+modefile;
// pathtemp=makexls(mopa,mfile,sql,listTitle,conn);
  pathtemp=makexls(mopa,mfile,sql,listTitle);
  if (!"".equals(pathtemp)){
    int len=pathtemp.length();
    int j=pathtemp.indexOf("result");
pathtemp=pathtemp.substring(j,len);
  }
分享到:
评论

相关推荐

    java生成excel图表

    "Java生成Excel图表" Java生成Excel图表是使用Java语言来生成Excel图表的过程。Excel图表是指使用Excel软件生成的图表,例如柱状图、折线图、饼状图等。Java语言可以使用各种库和框架来生成Excel图表,例如...

    Java生成excel文件

    Java生成excel文件Java生成excel文件Java生成excel文件Java生成excel文件Java生成excel文件Java生成excel文件Java生成excel文件Java生成excel文件

    Java生成Excel文件

    首先,Java生成Excel文件通常会用到Apache POI库,这是一个流行的API,用于读写Microsoft Office格式的文件,包括Excel(.xlsx和.xls)。要开始,你需要在项目中引入Apache POI库。如果你使用的是Maven,可以在pom....

    java生成excel

    Java 生成 Excel 文件并下载 Java 生成 Excel 文件是指使用 Java 语言生成 Excel 文件的过程。Excel 文件是一种常用的电子表格文件格式,广泛应用于数据存储和分析。在 Java 中,可以使用 Apache POI 库来生成 ...

    java生成excel表格需要的3个jar包

    在"java生成excel表格需要的3个jar包"中,提到的三个关键文件是: 1. poi-2.5.1-final-20040804.jar:这是Apache POI的核心库,包含了处理Excel文件的主要类和接口。在这个版本中,你可以找到用于创建、读取和修改...

    java生成excel实例通过(jxl)

    Java生成Excel是常见的数据处理需求,特别是在大数据导出、报表制作和数据分析场景中。JXL是一个流行的Java库,专门用于处理Microsoft Excel文件。本实例将详细介绍如何使用JXL库在Java中生成、读取、复制和修改...

    Java生成excel表格设置公式并填充数据

    Java编程调用PageOffice实现从空白的excel文件动态生成excel表格,设置公式并填充数据。 集成PageOffice不但能够实现在线编辑、保存真正的Office文档,而且还可以轻松实现Word、Excel文档的动态数据填充、格式控制和...

    java生成excel表格

    `java生成excel表格.zip`和`java生成excel文件表格`可能是包含其他示例代码或已生成的Excel文件。你可以解压这些文件,查看和运行其中的代码,以了解更多的用法和功能,例如如何读取Excel数据,如何设置单元格格式,...

    利用Java生成Excel文件

    利用Java生成Excel文件是一项常见的需求,特别是在数据处理和报表生成的场景中。Apache POI是一个强大的库,专门用于处理Microsoft Office格式的文件,包括Excel。本文将详细介绍如何使用Java和POI库生成Excel文件,...

    java绝对生成excel报表

    总结,Java生成Excel报表的过程涉及到文件I/O操作、使用第三方库(如JExcelApi)、创建和操作工作簿和工作表对象、设置单元格内容和样式等技术。通过熟练掌握这些知识点,你就能高效地在Java程序中生成各种复杂的...

    java生成excel报表

    在IT行业中,生成Excel报表是一项常见的任务,尤其是在数据处理、数据分析和报告生成的场景下。Apache POI是一个广泛使用的开源库,它允许开发者使用Java语言来读取、写入和修改Microsoft Office格式的文件,包括...

    java 生成Excel文件

    在`StreamDemo_13.java`这个示例文件中,可能就包含了上述部分或全部步骤,演示了如何使用Java生成Excel文件的具体实现。配合`Java.jpg`这个图片文件,可能是为了说明如何在Excel中插入图片。 总之,通过Apache POI...

    java生成excel 文档

    Java生成Excel文档是一种常见的数据导出需求,尤其在企业级应用和数据分析中广泛使用。Apache POI 是一个流行的开源库,专门用于读取、写入和修改Microsoft Office格式的文件,包括Excel(.xlsx和.xls)文档。在这个...

    java 生成 excel 包含jar包

    Java生成Excel是编程中常见的需求,特别是在数据处理和报表生成的场景下。Java与Excel的交互通常通过第三方库实现,例如Apache POI、JExcelAPI等。本示例中提到的"java 生成 excel 包含jar包",指的是一个包含相关...

    java生成Excel及jar包和文件下载的几种方式

    本篇文章将详细探讨Java生成Excel的不同方法以及如何处理jar包和文件下载。 首先,让我们了解一下Java生成Excel的几种常见库: 1. **JXL库**:压缩包中的`jxl.jar`文件就是JXL库,这是一个广泛使用的Java库,用于...

    java生成excel工具类和demo

    本示例涉及的“java生成excel工具类和demo”是关于如何在Java环境中使用Apache POI库来创建和导出Excel文件的一个实践案例。Apache POI是一个流行的开源库,它允许开发者读写Microsoft Office格式的文件,包括Excel...

    java生成excel.rar

    这个名为"java生成excel.rar"的压缩包文件显然包含了完成这一任务的相关代码和资源。下面将详细解释如何利用Java生成Excel,以及可能涉及的关键知识点。 首先,`ExportExcel.java`很可能是一个用于创建Excel文件的...

    java 生成excel (POI)

    这篇博客文章“java 生成excel (POI)”显然是探讨如何使用Apache POI来创建Excel文件。下面将详细阐述Apache POI库的核心概念、使用方法以及生成Excel的基本步骤。 Apache POI是Apache软件基金会的一个开源项目,它...

    java生成Excel数据表

    对于“java生成Excel数据表”这个主题,我们将主要关注如何使用Apache POI来创建和填充Excel工作簿。 首先,你需要在你的项目中引入Apache POI库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml...

    java 生成Excel,可根据模板格式生成 Excel打印专用 报表

    在Java编程环境中,生成Excel报表是一项常见的任务,特别是在数据分析、数据导出或报表制作的场景中...以上就是使用Java生成基于模板的Excel报表的基本步骤和知识点,实际开发中可能还需要根据业务需求进行调整和优化。

Global site tag (gtag.js) - Google Analytics