使用JAVA读取和写入EXCEL文件

2021-07-14 09:54:10 浏览数 (1)

下载地址http://download.csdn.net/detail/u010634066/8302683  下载直接用

首先要下载 poi包和jxl包

读取部分:

代码语言:javascript复制
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;


/**============================================================
 * 版权: 
 * 包: 
 * 修改记录:
 * 日期                               作者                               内容
 * =============================================================
 * 2014-12-25       shirenchuang        
 * ============================================================*/

/**
 * @author shirenchuang
 *
 */
public class ReadExecl {

    /*private String fileUrl;
   
    public ReadExecl(String fileUrl) {
        // TODO Auto-generated constructor stub
        this.fileUrl = fileUrl;
    }*/
   // File file = new File(fileUrl);
    
    /**

     * 读取Excel的内容,第一维数组存储的是一行中格列的值,二维数组存储的是多少个行

     * @param file 读取数据的源Excel

     * @param ignoreRows 读取数据忽略的行数,比喻行头不需要读入 忽略的行数为1

     * @return 读出的Excel中数据的内容

     * @throws FileNotFoundException

     * @throws IOException

     */
    
    public static List getData(File file,int ignoreRows) throws IOException{
        //返回所有工作表的数据
        List result = new ArrayList();
        BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
        POIFSFileSystem  fs = new POIFSFileSystem(in);
        HSSFWorkbook wb = new HSSFWorkbook(fs);
        HSSFCell cell = null;
        wb.getNumberOfSheets();
        //多个工作表
        for(int i=0;i= 0; i--) {

           if (str.charAt(i) != 0x20) {

              break;

           }

           length--;

       }

       return str.substring(0, length);

    }
    
}

写入部分

代码语言:javascript复制
import java.io.File;
import java.io.IOException;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;



/**============================================================
 * 版权: 元亨通信 版权所有 (c) 2002 - 2012
 * 包: 
 * 修改记录:
 * 日期                               作者                               内容
 * =============================================================
 * 2014-12-25       shirenchuang        
 * ============================================================*/

/**
 * @author shirenchuang
 *
 */
public class WriterExecl {
    private static String writeUrl ="";
    public String getWriteUrl() {
        return writeUrl;
    }


    public void setWriteUrl(String writeUrl) {
        this.writeUrl = writeUrl;
    }


    public WriterExecl(String writeUrl ) {
        // TODO Auto-generated constructor stub
        this.writeUrl= writeUrl;
    }
    
    
    /** 
     *  
     * 这是单纯的写EXCEL表格 
     * **/  
    public static void writeEx(int row,String[][] data){  
        
        WritableWorkbook wwb = null;     
        Label label = null;     
        String file =writeUrl;  
        try {     
            // 创建可写入的工作簿对象     
           
            wwb = Workbook.createWorkbook(new File(file));     
            if (wwb != null) {     
                // 在工作簿里创建可写入的工作表,第一个参数为工作表名,第二个参数为该工作表的所在位置   
                WritableSheet ws = wwb.createSheet("test", 0);     
                if (ws != null) {     
                    /* 添加表结构 */    
                    // 行     
                    for (int i=0;i

主方法:

代码语言:javascript复制
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;




public class main {

    public static void main(String[] args) throws IOException{
        ReadExecl re = new ReadExecl();
        File file = new File("C:/Users/Administrator/Desktop/test.xls");
        WriterExecl we = new WriterExecl("C:/Users/Administrator/Desktop/衢州用户表.xls");
        List result = new ArrayList();
        //不忽略行 从0开始
        result =  re.getData(file, 0);
        //有多少行
        int row = result.get(0).length;

         //写入  传入参数row   不传column  column是不确定的
        we.writeEx(row,result.get(0));
       
    }
}
poi

0 人点赞