java读取上传excel文件和txt文件中的数据

合集下载

Java读取TXT文件的多种方式

Java读取TXT文件的多种方式

Java读取TXT文件的多种方式按行读取TXT文件package zc;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;public class readLine {public static void main(String[] args) {// TODO Auto-generated method stubFile file = new File("C:/zc.txt");BufferedReader reader = null;String tempString = null;int line =1;try {System.out.println("以行为单位读取文件内容,一次读一整行:");reader = new BufferedReader(new FileReader(file));while ((tempString = reader.readLine()) != null) {System.out.println("Line"+ line + ":" +tempString);line ++ ;}reader.close();} catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch block e.printStackTrace();}finally{if(reader != null){try {reader.close();} catch (IOException e) {// TODO Auto-generated catch block e.printStackTrace();}}}}}按字节读取TXT文件package zc;import java.io.File;import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException;import java.io.InputStream;public class readerFileByChars {public static void main(String[] args) {// TODO Auto-generated method stubFile file = new File("c:/zc.txt");InputStream in = null;byte[] tempByte = new byte[1024];int byteread = 0;try {System.out.println("以字节为单位读取文件内容,一次读多个字节:");in = new FileInputStream(file);while ((byteread = in.read(tempByte)) != -1 ) {System.out.write(tempByte, 0, byteread);}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{if (in != null) {try {in.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}} }}。

Java读取Excel文件的几种方法

Java读取Excel文件的几种方法

Java读取Excel文件的几种方法最近单位有个项目需要读取excel文件的内容,特别对java读取excel文件的方法做了一点学习,也为了其他人以后能更简单地开发,少走弯路,特写此文,以下程序经过了我的测试,可以保证程序可用,如果你照搬都不行,可能是你的环境有问题。

读取excel文件的常用开源免费方法有以下几种:JDBC-ODBC Excel Driverjxl.jarjcom.jarpoi.jar下面分别对这几种方法分别进行探讨1、JDBC-ODBC Excel Driver这种方法是将excel看成是数据库进行操作,使用SQL Select语句即可查询excel表格。

优点是:不需要第三方的jar包。

如下表样首先在控制面板进行数据源ODBC登记具体方法如下:下面就是代码了。

package xuzhe;import java.io.*;import java.sql.*;//java xuzhe.ExcelJDBCpublic class ExcelJDBC {public static void main(String[] args) throws SQLException{Connection con = null;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");con = DriverManager.getConnection( "jdbc:odbc:ExcelJDBC" );Statement st = con.createStatement();ResultSet rs = st.executeQuery( "Select * from [Sheet1$]" );ResultSetMetaData rsmd = rs.getMetaData();int numberOfColumns = rsmd.getColumnCount();System.out.println ("表格列数"+numberOfColumns );System.out.println( rsmd.getColumnName(1)+ "," +rsmd.getColumnName(2) + "," + rsmd.getColumnName(3));while (rs.next()) {for (int i = 1; i <= numberOfColumns; i++) {if (i > 1) System.out.print(", ");String columnValue = rs.getString(i);System.out.print(columnValue);}System.out.println("");}rs.close();st.close();}catch(Exception ex) {System.err.print("Exception: ");System.err.println(ex.getMessage());}finally {con.close();}}}执行结果如下:2、jxl.jarjxl.jar为开源代码,任何运行java虚拟机的操作系统都能使用这个jar包操作excel表格。

JAVA如何读取Excel数据

JAVA如何读取Excel数据

JAVA如何读取Excel数据1.创建Maven项⽬在pom⽂件中添加依赖<dependencies><!-- 旧的 .xls --><!--<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency>--><!-- 新的 .xlsx --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version></dependency></dependencies>2.编写代码import ermodel.*;import ermodel.XSSFWorkbook;import java.io.FileInputStream;import java.io.IOException;public class PoiTest {public static void main(String[] args) throws IOException {FileInputStream is = new FileInputStream("src/main/resources/test.xlsx");XSSFWorkbook workbook = new XSSFWorkbook(is);//读取SheetSheet sheet = workbook.getSheetAt(0);Row row = sheet.getRow(0);//获取最⼤⾏数int rownum = sheet.getPhysicalNumberOfRows();//获取最⼤列数int colnum = row.getPhysicalNumberOfCells();for (int i = 0; i < rownum; i++) {//获取第i⾏数据row = sheet.getRow(i);for (int j = 0; j < colnum; j++) {Cell cell = row.getCell(j);cell.setCellType(CellType.STRING);String cellText = cell.getStringCellValue();System.out.print(cellText + "\t");}System.out.println();}}}3.报错3.1 异常解决Cannot get a STRING value from a NUMERIC cell poipoi导⼊excel表格数据时报ng.IllegalStateException: Cannot get a STRING value from a NUMERIC cell异常是因为在读取cell单元格字符串时,有number类型的数据,因此需要把它转化为纯String类型,这样就不会报错了。

java读取excel科学计数法处理

java读取excel科学计数法处理

java读取excel科学计数法处理摘要:1.问题背景2.解决方案3.具体实现4.总结正文:1.问题背景在Java 编程中,读取Excel 文件中的数据时,可能会遇到科学计数法表示的问题。

这是因为Excel 文件中的某些单元格的值可能非常大或非常小,超出了常规数字的范围,因此以科学计数法表示。

但是,在Java 中,以科学计数法表示的数字不能直接用于编程运算,需要将其转换为常规数字格式。

2.解决方案解决Java 读取Excel 科学计数法表示的问题,可以使用以下方法:方法一:使用Apache POI 库Apache POI 是一个流行的Java 库,用于处理Microsoft Office 文档,包括Excel 文件。

使用Apache POI 库读取Excel 文件时,可以指定单元格的格式,从而避免科学计数法的出现。

具体实现:```javaimport ermodel.*;import ermodel.XSSFWorkbook;public class ReadExcel {public static void main(String[] args) {String filePath = "example.xlsx";Workbook workbook = new XSSFWorkbook(new FileInputStream(filePath));Sheet sheet = workbook.getSheetAt(0);Row row = sheet.getRow(0);Cell cell = row.getCell(0);// 指定单元格的格式cell.setCellType(CellType.STRING);// 读取单元格的值String value = cell.getStringCellValue();System.out.println(value);workbook.close();}}```方法二:使用Java 内置库Java 内置的库中也提供了一些处理Excel 文件的方法,例如,可以使用`java.io.FileInputStream`和`ermodel.Workbook`类来读取Excel 文件。

java读取excel科学计数法处理

java读取excel科学计数法处理

java读取excel科学计数法处理摘要:一、前言- 介绍Java 读取Excel 文件时可能出现科学计数法的问题二、问题原因- 分析Java 读取Excel 文件时出现科学计数法的原因三、解决方法- 提出解决Java 读取Excel 文件时出现科学计数法的方法四、总结- 总结解决Java 读取Excel 文件时出现科学计数法的方法及其实际应用正文:一、前言在Java 编程中,读取Excel 文件是常见的操作。

但是,有时候读取出来的数据可能会是科学计数法表示,这对于后续的数据处理和分析带来了一定的麻烦。

因此,本文将探讨如何解决Java 读取Excel 文件时出现科学计数法的问题。

二、问题原因Java 读取Excel 文件时,如果单元格的类型是数值型,且该数值超出了Java 所能表示的范围(如:2^31 - 1),那么该数值将会以科学计数法的形式表示。

这是因为Java 在表示大数值时,会使用科学计数法。

而Excel 文件中的数值可能因为单元格设置、数据录入等原因,导致出现这种情况。

三、解决方法要解决Java 读取Excel 文件时出现科学计数法的问题,可以采用以下方法:1.使用Apache POI 库Apache POI 库是Java 读取Excel 文件的一个非常强大的库,支持xls 和xlsx 格式的文件。

使用Apache POI 库读取Excel 文件时,可以通过设置单元格的格式,来避免科学计数法的出现。

例如:```javaCell cell = row.getCell(j);if (cell != null) {cell.setCellType(CellType.STRING);cell.setCellValue(String.valueOf(cell.getNumericCellValue()));}```这段代码将单元格的类型设置为字符串类型,并将数值型的单元格值转换为字符串,从而避免了科学计数法的出现。

Java实现word文档在线预览,读取office(word,excel,ppt)文件

Java实现word文档在线预览,读取office(word,excel,ppt)文件

Java实现word⽂档在线预览,读取office(word,excel,ppt)⽂件想要实现word或者其他office⽂件的在线预览,⼤部分都是⽤的两种⽅式,⼀种是使⽤openoffice转换之后再通过其他插件预览,还有⼀种⽅式就是通过POI读取内容然后预览。

⼀、使⽤openoffice⽅式实现word预览主要思路是:1.通过第三⽅⼯具openoffice,将word、excel、ppt、txt等⽂件转换为pdf⽂件2.通过swfTools将pdf⽂件转换成swf格式的⽂件3.通过FlexPaper⽂档组件在页⾯上进⾏展⽰我使⽤的⼯具版本:openof:3.4.1swfTools:1007FlexPaper:这个关系不⼤,我随便下的⼀个。

推荐使⽤1.5.1JODConverter:需要jar包,如果是maven管理直接引⽤就可以操作步骤:1.office准备下载openoffice:从过往⽂件,其他语⾔中找到中⽂版3.4.1的版本下载后,解压缩,安装然后找到安装⽬录下的program ⽂件夹在⽬录下运⾏soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard如果运⾏失败,可能会有提⽰,那就加上 .\ 在运⾏试⼀下这样openoffice的服务就开启了。

2.将flexpaper⽂件中的js⽂件夹(包含了flexpaper_flash_debug.js,flexpaper_flash.js,jquery.js,这三个js⽂件主要是预览swf⽂件的插件)拷贝⾄⽹站根⽬录;将FlexPaperViewer.swf拷贝⾄⽹站根⽬录下(该⽂件主要是⽤在⽹页中播放swf⽂件的播放器)项⽬结构:页⾯代码:fileUpload.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>⽂档在线预览系统</title><style>body {margin-top:100px;background:#fff;font-family: Verdana, Tahoma;}a {color:#CE4614;}#msg-box {color: #CE4614; font-size:0.9em;text-align:center;}#msg-box .logo {border-bottom:5px solid #ECE5D9;margin-bottom:20px;padding-bottom:10px;}#msg-box .title {font-size:1.4em;font-weight:bold;margin:0 0 30px 0;}#msg-box .nav {margin-top:20px;}</style></head><body><div id="msg-box"><form name="form1" method="post" enctype="multipart/form-data" action="docUploadConvertAction.jsp"><div class="title">请上传要处理的⽂件,过程可能需要⼏分钟,请稍候⽚刻。

Java实现上传txt,doc,docx文件并且读取内容

Java实现上传txt,doc,docx文件并且读取内容

Java实现上传txt,doc,docx⽂件并且读取内容1,前端上传/导⼊⽂件:var uploaderXls = new plupload.Uploader({//创建实例的构造⽅法runtimes: 'gears,html5,html4,silverlight,flash', //上传插件初始化选⽤那种⽅式的优先级顺序browse_button: 'btnImportXls', // 上传按钮url: "resumeController.do?importExcel", //远程上传地址flash_swf_url: 'plug-in/plupload/js/Moxie.swf', //flash⽂件地址silverlight_xap_url: 'plug-in/plupload/js/Moxie.xap', //silverlight⽂件地址filters: {max_file_size: '10mb', //最⼤上传⽂件⼤⼩(格式100b, 10kb, 10mb, 1gb)mime_types: [//允许⽂件上传类型{title: "files", extensions: "txt,doc,docx"}]},multipart_params:{isup:"1"},multi_selection: false, //true:ctrl多⽂件上传, false 单⽂件上传init: {FilesAdded: function(up, files) { //⽂件上传前debugger;uploaderXls.start();},FileUploaded: function(up, file, info) { //⽂件上传成功的时候触发info1 = JSON.parse(info.response);$("#resumeList").datagrid();layer.alert(info1.msg);//console.log(info.message);},Error: function(up,info, err) { //上传出错的时候触发layer.alert(err.message);}}});uploaderXls.init();2,后台接收⽂件,并读取:MultipartFile是spring的⼀个接⼝,通常我们可以在controller定义⽅法使⽤MultipartFile接收form表单提交的⽂件,然后将MultipartFile可以转化成⼀个⽂件。

java获取在线文档数据的方法

java获取在线文档数据的方法

要获取在线文档数据,可以使用Java的网络编程功能来连接文档所在的服务器,并从服务器上下载文档数据。

以下是一些可能有用的方法:
1. 使用Java的URL类获取文档数据:使用URL类中的openStream()方法可以打开一个与指定URL相关的数据流,然后可以使用Java IO库中的类来读取该数据流并获取文档数据。

2. 使用Java的URLConnection类获取文档数据:使用URLConnection类中的getInputStream()方法可以打开一个与指定URL相关的输入流,然后可以使用Java IO库中的类来读取该输入流并获取文档数据。

3. 使用Java的HttpClient类获取文档数据:HttpClient类可以用于发送HTTP请求并接收HTTP响应。

可以使用HttpClient类中的execute()方法发送HTTP GET请求以获取文档数据,然后可以使用Java IO库中的类来读取响应数据。

4. 使用第三方库来获取文档数据:有许多第三方库可用于从Web上获取数据,例如Jsoup和Apache HttpClient。

这些库通常提供更高级的API和更多的功能,可以使获取在线文档数据变得更加容易和灵活。

无论使用哪种方法,都需要确保在处理完数据后关闭所有打开的资源,例如输入/输出流、套接字和HTTP连接。

这可以通过使用Java
的try-with-resources语句来实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java 读取上传文件里的数据,记事本文件和excel文件
本文,文本文件里的数据,每列以 Tab 分隔。

其它分隔符情况下,只需修改对分隔符的判断即可
本文是将文本文件或excel文件里的数据读到List<String[]> 里。

List<Map> , List<ArrayList>, ........可以改为返回其它类型的数据集
UpLoadExcel 类里需要操作excel的 jar包
import org.apache.poi.* ;
网上可以搜索下载,简单快捷
---------------------------------------------------------------------------- - - - public class upLoadAction extends DispatchAction {
public ActionForward doAdd(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
TestForm myForm = (TestForm) form;
FormFile f = myForm.getUpfisle(); //get上传文件
String fileName = f.getFileName();
// 截取文件名的后三位字符
String fileType = fileName.substring(fileName.length()-3,fileName.length());
System.out.println("导入的文件名:"+fileName+"\t 文件后缀名:"+fileType);
List<String[]> list = new ArrayList<String[]>();
if("xls".equals(fileType)){ // 上传文件是excel时文件文件后缀名为xls list = new UpLoadExcel().getExcelData(f.getInputStream());
}else if("txt".equals(fileType)){
list = new UploadText().UploadText(f.getInputStream());
}
// 操作读取出来的数据,例如:
if (list.size() > 0) {
String[] str = null;
for(int i = 0; i < list.size(); i++) {
str = list.get(i);
st = "insert into student (sName,sAge,sAddress,sTelephone) values(" ;
st = "'" + st + str[0] + "'";
st = ",'" + st + str[1] + "'";
st = ",'" + st + str[4] + "'";
st = ",'" + st + str[6] + "'";
st = st + ")";
......
System.out.println(st);
}
}
}
}
-------------------------------------------- - - -- ---------------- -
package myTest;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import ermodel.HSSFRow;
import ermodel.HSSFSheet;
import ermodel.HSSFWorkbook;
public class UpLoadExcel {
/**
*要读取的excel文件的数据例如:
*A B C D E F
1112141516
21232526
...
...
*有些行的部分列为空,但其后面的列又有值
*/
public List<String[]> getExcelTest(InputStream is){
// 声明集合 List<String[]> ,
// List<String[]> 的元素行数组String[]为excel中的每一行
List<String[]> list = new ArrayList<String[]>();
try {
// 将is流实例到一个excel流里
HSSFWorkbook hwk = new HSSFWorkbook(is);
// 得到book第一个工作薄sheet
HSSFSheet sh = hwk.getSheetAt(0);
// 总行数
int rows = sh.getLastRowNum()+1 - sh.getFirstRowNum();
// System.out.println(rows);
for(int i=0; i<rows; i++){
HSSFRow row = sh.getRow(i);
int cols = row.getLastCellNum()+1 - row.getFirstCellNum(); // 该行的总列数
String[] str = new String[cols]; // 用来存放该行每一列的值
for (int j = 0; j < cols; j++) {
Object col = row.getCell((short)j);
Object colNext = row.getCell((short)(j+1));
if(col != null){ // 该列不为空,直接读到行数组里
str[j] = col.toString();
}else{ // 该列为空
// 该列的后面一列不为空,用空字符串占位
if(colNext != null){
Object colValue = "";
str[j] = colValue.toString();
}
}
list.add(str);
}
}
} catch (IOException e) {
e.printStackTrace();
}
return list;
}
}
---------------------------------------------------------------------------------------------------------------------- - - - -
package myTest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class UploadText {
/**
*返回文本每行数据
*/
public List<String[]> UploadText(InputStream inputStream){
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String str = null;
List<String[]> list = new ArrayList<String[]>();
try {
while((str = reader.readLine()) != null){
list.add(str.split("\t"));
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
return list;
}
}。

相关文档
最新文档