excel表格/txt数据读取工具

来源:互联网 发布:php $a & 7 变量 编辑:程序博客网 时间:2024/05/21 09:13

这边分享一个excel表格数据的行读取,因为一般都是先转成cvs格式,所以请excel打开后,另存为cvs格式的文件,然后在上传。这边cvsReader限制了行读取为8192行,所以这个工具也支撑了txt文件读取,数据之间用"_"隔开。

上传文件用原生的上传文件方式,上传方式如下:

$(function() {$('#sendMessage').click(function() {var $form = $('#message-form');var filePhoneNum=$('#phoneNumFile')[0].files[0];// 异步上传图片var formData = new FormData();formData.append('filePhoneNum', filePhoneNum);formData.append('messageContent', $('#message').val());$.ajax({url : $form.data('send-url'),type : 'post',dataType : 'json',data : formData,success : function(data){if(data.sended=="success"){alert("成功发送了: "+data.sendNum+" 个号码");}},error:function(){alert("发送失败");},contentType: false,processData: false});});});
当然后端是直接把HttpServletRequest作为参数传到一下这个读取和切割工具中,从而读取数据内容。大家可以根据内容的列数进行返回值的变化,我这边只做了每行一列的处理

package com.yiyong.mavenspring.demo.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;import javax.servlet.http.HttpServletRequest;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.multipart.MultipartHttpServletRequest;import org.springframework.web.multipart.commons.CommonsMultipartResolver;import com.opencsv.CSVReader;public class UploadPhoneNumUtil {private static Logger log = LoggerFactory.getLogger(UploadPhoneNumUtil.class);public static String[] uploadPhoneNum(HttpServletRequest request){CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());       //判断 request 是否有文件上传,即多部分请求       if(multipartResolver.isMultipart(request)){           //转换成多部分request             MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;           //取得request中的所有文件名           MultipartFile phoneNumFile=multiRequest.getFile("filePhoneNum");         String fileName = phoneNumFile.getOriginalFilename(); String prefix = fileName.substring(fileName.lastIndexOf(".") + 1) .toLowerCase(); if ("xls".equals(prefix) || "xlsx".equals(prefix) || "csv".equals(prefix)) { try { // 使用第三方开源类库OpenCSV来读取CSV文件 @SuppressWarnings("resource") CSVReader reader = new CSVReader(new InputStreamReader( phoneNumFile.getInputStream()));            // 去除第一行header信息 //String[] nextLine = reader.readNext();           List<String> phoneNumsList = new ArrayList<String>();        List<String[]> list = reader.readAll();         for(String[] temp:list){        phoneNumsList.add(temp[0]);        }//         while (nextLine != null) {  //         String tempNum = nextLine[0];//         phoneNumsList.add(tempNum);//         nextLine = reader.readNext(); //         }        String[] phoneNums = (String[]) phoneNumsList.toArray(new String[phoneNumsList.size()]);         return phoneNums;      }catch (IOException ex) {     log.error("=========="+"读取短信文件出错"+"=========");     return new String[]{"ReaderPhoneNumFileError"}; }          }else if("txt".equals(prefix)){//当文件是txt格式的时候 InputStreamReader read =null; try { read = new InputStreamReader(phoneNumFile.getInputStream());BufferedReader bufferedReader = new BufferedReader(read);String phoneContent="";              String lineTXT = null;              while ((lineTXT = bufferedReader.readLine()) != null) {              phoneContent+=lineTXT.toString();                                 }              String[] phoneNums=phoneContent.split("_");              read.close();              return phoneNums;} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}  } return new String[]{"ForMatError"};     }      return new String[]{"NoPhoneNumFonud"};   }}

读取CVS文件别忘记了要导入CSV的包,这边我用maven的方式给大家导包吧

<!-- 发送短信需要用上传csv文件行读取 --><dependency>     <groupId>com.opencsv</groupId>     <artifactId>opencsv</artifactId>     <version>3.4</version> </dependency><!-- 发送短信需要用上传csv文件行读取 -->




2 0
原创粉丝点击