java 读取模板EXCEL写入数值

3 篇文章 0 订阅

自己写了个读取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();
	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值