`
umbrellall1
  • 浏览: 146292 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

java 读取模板EXCEL写入数值

 
阅读更多
自己写了个读取excel模板的写入数据的列子

package copy.user;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;

public class ExcelMain {
	
	/**
	 * 
	 * 这个是单纯读取EXCEL数据
	 * */
	public  void read() {
		StringBuffer sb = new StringBuffer();  
        Workbook wb = null;   
        try {   
        	File is = new File("f:\\ExcelTest\\try.xls");
            // 获取工作簿对象   
            wb = Workbook.getWorkbook(is);   
            if (wb != null) {   
                // 获取工作簿对象就可以获取工作簿内的工作表对象   
                Sheet[] sheets = wb.getSheets();   
                if (sheets != null && sheets.length != 0) {   
                    // 遍历工作簿内所有工作表   
                    for (int i=0;i<sheets.length;i++) {   
                        // 获取该工作表内的行数   
                        int rows = sheets[i].getRows();   
                        // 遍历行   
                        for (int j=0;j<rows;j++) {   
                        	String cell ="";
                            // 获取当前行的所有单元格   
                            Cell[] cells = sheets[i].getRow(j);   
                            if (cells != null && cells.length != 0) {   
                                // 遍历单元格   
                                for (int k=0;k<cells.length;k++) {   
                                    // 获取当前单元格的值   
                                	if(!cells[k].getContents().equals("")){
                                		cell += cells[k].getContents();   
                                	}
                                    // 缩进   
                                    sb.append(cell + "\t");   
                                }   
                                System.out.println(cell);
                                sb.append("\t\n");   
                            }   
                        }   
                        sb.append("\t\n");   
                    }   
                }   
                System.out.println("成功读取了:" +is.getName()+ "\n");   
            }   
        } catch (Exception e) {   
            e.printStackTrace();
        } finally {   
        	//关闭
            wb.close();   
        }   
	}
	/**
	 * 
	 * 这是单纯的写EXCEL表格
	 * **/
	private void write(){
		WritableWorkbook wwb = null;   
        Label label = null;   
        String file ="f:\\ExcelTest\\3.xls";
        try {   
            // 创建可写入的工作簿对象   
            wwb = Workbook.createWorkbook(new File(file));   
            if (wwb != null) {   
                // 在工作簿里创建可写入的工作表,第一个参数为工作表名,第二个参数为该工作表的所在位置 
            	WritableSheet ws = wwb.createSheet("Sheet4", 2);   
                if (ws != null) {   
                    /* 添加表结构 */  
                    // 行   
                    for (int i=0;i<5;i++) {   
                        // 列   
                        for (int j=0;j<5;j++) {   
                            // Label构造器中有三个参数,第一个为列,第二个为行,第三个则为单元格填充的内容   
                            label = new Label(j, i, "第"+(i+1)+"行," + "第"+(j+1)+"列");   
                            // 将被写入数据的单元格添加到工作表   
                            ws.addCell(label);   
                        }   
                    }   
                    // 从内存中写入到文件   
                    wwb.write();   
                }   
                System.out.println("路径为:" + file + "的工作簿写入数据成功!");   
            }   
        } catch (Exception e) {   
            System.out.println(e.getMessage());   
        } finally {   
            try { 
				wwb.close();
			} catch (WriteException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}   
        }   
	}
	
	/**
	 * 
	 * 这个是读取模板写入数据
	 * **/
	private void readWriter(){
		WritableWorkbook wwb=null;
		WritableSheet wws=null;
		FileOutputStream out =null;
		Connection conn=null;
		Statement st=null;
		ResultSet mySQLRS=null;
		//获取要读取的EXCEL表格模板
		File is = new File("f:\\ExcelTest\\try.xls");
        String filename="f:\\ExcelTest\\";
        //写入到新的表格里
        File f=new File(filename,"try1.xls");
        try {
        	//创建新文件
        	f.createNewFile();
        	out = new FileOutputStream(f);
        	//获取工作簿对象   
			Workbook wb = Workbook.getWorkbook(is);
			// 创建可写入的工作簿对象  
			wwb = Workbook.createWorkbook(out, wb);
			//根据工作表名获取WritableSheet对象
			wws=wwb.getSheet("Sheet1");
			//这个是链接数据库的一个对象
			CopyUser cp=new CopyUser();
			//获取connection
			conn=cp.getMYConnection();
			//创建Statement
			st=conn.createStatement();
			WritableCellFormat wcf=new WritableCellFormat(); 
			//设置样式
			wcf.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); 
			mySQLRS=st.executeQuery("select name,officeName from mix_end_user where officeName like '河南%' ");
			Label label=null;
			List<String> list=new ArrayList<String>();
			while(mySQLRS.next()){
				//将数据存放在List当中
				list.add(mySQLRS.getString("name"));
			}
			int count_02=0;
			for(int i=3;i<24;i++){
				for(int j=3;j<9;j++){
					//创建label对象设置value值j相当于是X轴I是Y轴位置
					label= new Label(j,i,list.get(count_02),wcf);
					//添加到工作薄中
					wws.addCell(label);
					count_02++;
				}
			}
			//将新建立的工作薄写入到磁盘
			wwb.write();
        } catch (Exception e) {
			e.printStackTrace();
		} finally{
			//关闭流
			try {
				wwb.close();
				out.close();
				mySQLRS.close();
				st.close();
				conn.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	public static void main(String[] args) {
		new ExcelMain().readWriter();
	}
}

分享到:
评论
2 楼 贝塔ZQ 2016-09-23  
java实现读取excel模板,往excel中插入数据,用office插件的话,或许会方便点,PageOffice插件专门编辑保存操作office文档的,官网上查查可以。
1 楼 woshixushigang 2014-12-05  
good 正是我想要的,如果楼主可以弄成开源的或者更加精致的话就完美了

相关推荐

    java 创建EXCEL文件,并向EXCEL中写入数据

    本示例将介绍如何使用Java创建Excel文件并写入数据,主要涉及的库是`jxl`,这是一个用于读写Excel文件的开源Java库。 首先,我们需要引入`jxl`库。`jxl.jar`包含了一系列的类和接口,用于处理Excel文件的各种操作。...

    “Java POI 模板”打造复杂Excel报表.pdf

    1. Java POI模板的使用:POI是一个Java API,用于读取和写入Microsoft Office文件格式,包括Excel文件。可以使用POI类库来生成复杂的Excel报表。 2. Struts框架的使用:Struts是一个基于MVC模式的Web应用框架,用于...

    poi基于模板导出excel

    Apache POI 是一个用于读写 Microsoft Office 格式文件的 Java 库,其中包括对 Excel 文件的支持。在实际开发过程中,经常会遇到需要根据现有的 Excel 模板来填充数据并生成新的 Excel 文件的需求。这种场景下,我们...

    kettle 使用excel模板导出数据

    在这个场景中,我们将创建一个特定的Transform,用于从数据库或其他数据源读取数据,并使用预定义的Excel模板进行导出。 1. **创建Excel Writer Transform**:在Kettle中,我们使用"Excel Writer"步骤来实现这个...

    java 导入及判断的Excel 使用方法

    在Java编程中,处理Excel文件是一项常见的任务,无论是读取数据、写入数据还是进行复杂的分析,Excel都因其直观的格式和广泛的应用而备受青睐。本文将深入探讨Java中导入和判断Excel的使用方法,结合实例分析,帮助...

    java poi操作excel批量导入导出项目需要的jar包

    它允许开发者在Java应用程序中创建、修改和读取Excel文件。在进行批量导入和导出Excel数据时,Apache POI是一个非常实用的选择。以下是关于使用Java POI进行Excel操作的关键知识点: 1. **Apache POI介绍**: ...

    java excel api

    Java Excel API,通常指的是jxl库,是一个广泛使用的开源Java库,用于读写Microsoft Excel文件。这个库使得在Java程序中处理Excel数据变得极其便捷,无论是读取现有的工作簿、创建新的工作簿,还是修改现有表格,jxl...

    java excel导入导出和模板下载

    Java Excel导入导出和模板下载是Java开发中常见的需求,特别是在数据分析、报表生成以及用户交互等场景中。本文将深入探讨使用Java处理Excel文件的核心技术,主要包括Apache POI库的运用,以及如何实现Excel模板的...

    java_poi导入excel通用工具类V0915

    在Java领域,当你需要读取、写入或修改Excel文件时,POI库是一个非常常用的选择。"java_poi导入excel通用工具类V0915" 提供了一种通用的方式来处理Excel数据的导入工作,它支持多种赋值方式,包括单个对象、列表对象...

    java操作Excel文件

    本文将深入探讨如何使用Java来读取、写入和修改Excel文件,主要涉及的库有Apache POI和JExcelApi。 Apache POI是Apache软件基金会的一个开源项目,提供了处理Microsoft Office格式文件的能力,包括Excel(.xls和....

    “java+poi+模板”打造复杂excel报表.docx

    在Java应用中,Apache POI是一个流行的API,它允许程序读取、写入和修改Microsoft Office格式的文件,包括Excel。对于复杂报表的生成,直接使用POI进行编程可能会非常繁琐,尤其是处理复杂的表头和计算。因此,采用...

    java生成并下载excel

    此外,考虑使用模板机制,预先创建好Excel模板,仅需替换其中的数据和图片,这样可以提高效率。 以上就是使用Java和Apache POI生成并下载包含数据和网络图片的Excel报表的基本流程。根据实际需求,你可能还需要处理...

    Java操作Excel培训文档.pptx

    JXL是一个开源的Java库,用于读写Microsoft Excel文件。它的优点在于简单易用,适合小型项目或快速实现Excel操作的需求。以下是如何使用JXL进行读写Excel的基本步骤: 1. **读取Excel文件**: - 首先,需要导入JXL...

    Java语言中一个excel导出功能

    JExcelAPI是一个开源库,允许Java应用程序读取、写入和修改Microsoft Excel文件。 首先,我们需要引入必要的导入语句,如`jxl.*`,这表示我们使用了JExcelAPI库中的多个类。`java.io`包中的`FileOutputStream`用于...

    Java操作Excel

    当我们谈论“Java操作Excel”时,通常是指使用Java来读取、写入或修改Microsoft Excel文件。这种能力对于数据分析、报告生成以及任何需要与电子表格交互的应用程序来说至关重要。下面将详细探讨Java操作Excel的相关...

    java用poi导入,到处excel操作

    Apache POI是一个开源项目,它提供了读取和写入Microsoft Office格式文件的能力,包括Excel(XLS和XLSX格式)。在本文中,我们将深入探讨如何使用Java和POI来实现Excel的导入与导出功能。 **1. POI基本概念** ...

    poi读取excel文件的完美jar包

    在Java开发中,Apache POI 是一个...总结来说,Apache POI是一个强大的工具,能够帮助Java开发者轻松地处理Excel文件,无论是读取还是写入。通过理解并熟练运用上述步骤,你可以实现将Excel数据高效地导入到数据库中。

    poi根据excel模板文件导出数据.pdf

    综上所述,这个Java程序利用Apache POI库,遵循六个步骤,实现了从Excel模板文件中读取数据,并根据指定的路径和Sheet名生成新的Excel文件。在整个过程中,涵盖了文件输入输出、Excel单元格操作以及不同类型数据的...

    使用POI在Excel中动态生成图表工具类(支持柱状、组合、环状图、折线图、等常用图)

    在Java开发中,Apache POI库是一个非常实用的工具,用于读取和写入Microsoft Office格式的文件,尤其是Excel(.xlsx和.xls)文件。本教程将深入讲解如何使用POI来动态地在Excel中创建各种图表,包括柱状图、组合图、...

    Java 导入EXCEL

    Excel文件,如"leadertemplet.xls",通常用于存储结构化的表格数据,而Java提供了多种方式来读取和操作这些文件。这篇博客文章可能详细介绍了如何在Java环境中处理Excel文件。 1. **Java与Excel交互的库**: - ...

Global site tag (gtag.js) - Google Analytics