JAVA读取文件中的内容(.csv/.text/.xls)

JAVA读取文件中的内容(.csv/.text/.xls)

依赖jxl.jar

<dependency>
    <groupId>net.sourceforge.jexcelapi</groupId>
    <artifactId>jxl</artifactId>
    <version>2.6.12</version>
</dependency>
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

import com.dimeng.framework.service.exception.ParameterException;
import com.dimeng.util.StringHelper;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class ImportFile extends HttpServlet{

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		try {
			Part part = request.getPart("file");
			System.out.println(part.getContentType());
			String[] mobiles = null;
			if (!StringHelper.isEmpty(part.getContentType())){
				if(part.getContentType().equals("application/csv")			//导入CSV格式
						|| part.getContentType().equals("text/plain")		//导入txt格式
						|| part.getContentType().equals("text/csv")){		//导入csv
					
					mobiles = importMobilesByCsv(part.getInputStream(),"UTF-8");
					
				}else if(part.getContentType().equals("application/vnd.ms-excel")||		//导入EXCLE格式(xls)
						part.getContentType().equals("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")		//导入EXCLE格式(xlsx)
						||part.getContentType().equals("application/octet-stream")){		//苹果电脑导入.xls 
					
					mobiles = importMobilesByExcel(part.getInputStream(),"UTF-8");
				}
				
			}
		}catch (Throwable e) {
			e.printStackTrace();
		}
		
	}

	
	private String[] importMobilesByCsv(InputStream inputStream, String charset) throws Throwable {
		if (inputStream == null) {
			throw new ParameterException("读取文件流不存在.");
		}
		if (StringHelper.isEmpty(charset)) {
			charset = "GBK";
		}
		List<String> mobiles = new ArrayList<>();
		try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, charset))) {
			String line = "";
			while ((line = reader.readLine()) != null) {
				mobiles.add(line);
			}
		}
		return mobiles.toArray(new String[mobiles.size()]);
	}
	
	//读取excel(xls)
	private String[] importMobilesByExcel(InputStream io, String charset) throws Throwable{
		//1:创建workbook
	    Workbook workbook=Workbook.getWorkbook(io); 
	    //2:获取第一个工作表sheet
	    Sheet sheet=workbook.getSheet(0);
	    //3:获取数据
//	    System.out.println("行:"+sheet.getRows());
//	    System.out.println("列:"+sheet.getColumns());
	    List<String> mobiles = new ArrayList<>();
	    for(int i=0;i<sheet.getRows();i++){
	        for(int j=0;j<sheet.getColumns();j++){
	            Cell cell=sheet.getCell(j,i);
	            mobiles.add(cell.getContents()+",");
	        }
	    }
	    //最后一步:关闭资源
	    workbook.close();
	    return mobiles.toArray(new String[mobiles.size()]);
	}

猜你喜欢

转载自blog.csdn.net/xfx_1994/article/details/103167396