`
wanghuapeng0000
  • 浏览: 23684 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

读文件(txt,xls)

阅读更多
文件解析方法:


import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Vector;

import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

import org.apache.struts.upload.FormFile;

/**
 *  Action 公用类
 * @author whp
 *
 */
public class Constains {
	
	/**
	 *  解析上传文件
	 * @param file
	 * @return
	 * @throws FileNotFoundException
	 * @throws IOException
	 * @throws BiffException 
	 */
	public static LinkedList<Object> ParseFile(FormFile file) throws FileNotFoundException, IOException, BiffException{
		LinkedList<Object> list=new LinkedList<Object>();   // 存放返回内容的容器
		//	存放手机号码的容器
		Vector<String> mobile=new Vector<String>();
		//   存放内容的容器
		Vector<String> content=new Vector<String>();
		String message="";   // 返回错误消息提示
		list.add(0,message);   // list.get(0)  错误消息提示
		String fileName=file.getFileName();
		fileName=fileName.substring(fileName.length()-4, fileName.length());  // 取得扩展名
		
		
		if(".txt".equalsIgnoreCase(fileName)){   // 文本形式
			BufferedReader in=new BufferedReader(new InputStreamReader(file.getInputStream(),"gb2312"));
			String tempMobile;
			
			
			while((tempMobile=in.readLine())!=null){
				long freeMemory=java.lang.Runtime.getRuntime().freeMemory()/(1024*1024);
				if(freeMemory<2){    // 虚拟机内存处在溢出的边缘
					message="上传文件太大请选择小一点的文件";
					list.set(0,message);   // list.get(0)  错误消息提示
					return list;
				}
				if(tempMobile.contains("!")){    // 包含号码和内容,号码和内容以"!"分隔
					String[] array=tempMobile.split("!");
					mobile.add(array[0]);
					content.add(array[1]);
				}else{                                 //  只有号码 
					mobile.add(tempMobile);
				}
				
			}
			
			list.add(1,mobile);    // list.get(1)  手机号码
			list.add(2,content);    // list.get(2)  短信内容
		
		}else if(".xls".equalsIgnoreCase(fileName)){  //Excel 文件
			Constains con=new Constains();
			list=con.readExcel(file,list);
		}else{
			message="文件格式不正确!";
		}
		list.set(0,message);   // list.get(0)  错误消息提示
		
		
		return list;
		
	}
	
	/**
	 *  read Excel 
	 * @param file
	 * @return
	 * @throws FileNotFoundException
	 * @throws IOException
	 * @throws BiffException
	 */
	private LinkedList<Object> readExcel(FormFile file,LinkedList<Object> list) throws FileNotFoundException, IOException, BiffException{
		Vector<Object> mobile = new Vector<Object>();     // 手机号码
		Vector<Object> content = new Vector<Object>();    // 短信内容
		// 获得文件输入流
		InputStream is = file.getInputStream();
		jxl.Workbook rwb = Workbook.getWorkbook(is);
		Sheet rs = rwb.getSheet(0);
		
		for (int k = 0; k < rs.getRows(); k++) {
			mobile.add(rs.getCell(0, k).getContents());
			if (rs.getColumns() > 1) {
				content.add(rs.getCell(1, k).getContents());
				
			}
		}
		
		rwb.close();
		is.close();
		list.add(1,mobile);
		list.add(2,content);
		return list;
	}
	

}



Action 调用:

if (file.getFileSize() > 0) {  // 号码文件不为空
			LinkedList list=new LinkedList();
			
			try {
				list = Constains.ParseFile(file);
			}catch (Exception e) {
				e.printStackTrace();
				request.setAttribute("message", "解析上传文件异常");
				return mapping.findForward("fail");
			}
			
			String message=(String)list.get(0);
			if(!"".equals(message)){   // 返回错误消息
				request.setAttribute("message", message);
				return mapping.findForward("fail");
			}else{
				if(list.size()>1){
					mobiles=(Vector)list.get(1);   // 返回解析后的号码
				}
				
			}
		}
分享到:
评论

相关推荐

    读取Excel文件xls、xlsx、csv格式文件,读取txt文件

    //C# 读取Excel文件、C#读取xls文件、C#读取xlsx...//C#将txt文件转换为DataTable(列与列之间空格隔开) 都转换成了DataTable,随便怎么玩了。 效果地址:https://blog.csdn.net/u012725119/article/details/81049607

    java 导入Excel 文件,支持xls、xlsx、csv格式

    以下将详细讲解如何在Java中处理`xls`、`xlsx`和`csv`格式的文件。 首先,对于`xls`文件,这是Excel 2003及更早版本使用的文件格式,基于HSSF(Horrible Spreadsheet Format)库。Apache POI项目提供了一个强大的...

    txt文本文件截取写入excel程序代码

    本资源是java读txt文本文件,截取写入excel程序代码。内含有说明文件 BaoDan.txt是原文件 BaoDan.xls是生成的excel文件 BaoDanTransf.txt是转换后的txt文件 BaoDanTfansf.java是源程序把原文件转换为excel和txt文件 ...

    Python读取txt内容写入xls格式excel中的方法

    本文将介绍如何使用Python来读取文本文件(txt格式)的内容,并将其写入到Excel文件(xls格式)中。本文的知识点包括Python的文件操作、编码处理、文件内容的读取和解析以及使用第三方库将数据写入Excel。 首先,...

    使用matlab或python将txt文件转为excel表格

    这段代码首先通过`importdata`读取名为"data.txt"的文本文件,然后使用`xlswrite`函数将读取到的数据写入一个名为"data.xls"的Excel文件中。 接下来,我们转向Python。Python在数据处理方面有pandas库,它提供了一...

    XLS/RTF/word/HTM/MHT转换为txt文本格式工具软件介绍 XLS/RTF/word/MHT转换为txt文本

    标题和描述中提到的是一款能够将XLS、RTF、Word、HTM、MHT文件转换成TXT文本格式的工具软件。这样的软件在处理不同类型的文档时非常有用,特别是当需要将复杂格式的内容转化为简洁易读的纯文本时。下面我们将深入...

    day2txt_EXCEL/VBA读通达信日线_通达信_

    通达信日线文件一般是 D:\通达信目录\Vipdoc\sz\lday\szXXXXXX.day附件中是一个带宏的xls文件(EXCEL)和测试数据。文件可以之间将day文件读入excel,便于后续分析。

    xls转txt等工具集 v1.2.zip

    纯文本文件(.txt)不包含任何格式信息,只包含可读的字符,这使得它们更易于跨平台处理,也更适合于编程环境,如在Python或R中进行数据分析。 压缩包内的"xls2txt"很可能是一个命令行工具或应用程序,用户可以通过...

    ASP源码—xls转txt等工具集 v1.2.zip

    而TXT文件则是一种纯文本格式,只包含可读字符,没有格式信息。 3. 转换原理: ASP源码可能通过读取XLS文件的内容,解析其中的数据行和列,然后将这些数据写入TXT文件中。转换过程可能涉及到使用ADO(ActiveX Data...

    matlab开发-dat2xls

    在压缩包中,dat2xls.m是实现上述功能的MATLAB源代码,data.txt是示例ASCII数据文件,而license.txt可能包含了该程序的使用许可信息,规定了如何合法使用和分发这个脚本。 在深入理解dat2xls.m的内容前,我们需要...

    Vue实现文件预览,支持word excel pdf ppt image txt mp4等格式

    - **文本/HTML预览**:对于.txt或.html文件,可以使用 `innerHTML` 属性直接展示在`&lt;pre&gt;` 或 `&lt;div&gt;` 标签中。 - **图片预览**:简单地设置 `img` 标签的 `src` 为文件的URL或base64编码。 - **PDF预览**:使用 ...

    MATLAB 使用文本文件(.txt)进行数据存取的技巧总结

    - **文本文件**:文本文件主要用于存储人类可读的文字信息。每个字节的最高位通常是0,这意味着文本文件实际上只使用了一个字节中的7位来表示信息。在处理文本文件时,通常会进行转换,将每个字节转换为相应的ASCII...

    Matlab读取数据文件

    本文将深入探讨如何使用Matlab处理数据文件,包括读取txt和.xls文件,以及进行三维最小二乘拟合。此外,我们还将讨论程序流程图在编程过程中的重要性。 首先,让我们来看看如何在Matlab中读取txt文件。文本文件(....

    android读取sdcard路径下的文件的方法

    代码如下:// 读取sdcard文件private void sdcardRead(){String fileName = “/sdcard/my_sdcard.txt”;// assets下文件//String fileName = “/sdcard/test/my_sdcard_test.txt”;// sdcard下子目录文件String ret =...

    pdm导出xls格式字典

    标题中的“pdm导出xls格式字典”指的是在Product Data ..."备注.txt"文件可能包含了关于如何使用这个脚本或者导出过程的一些注意事项和指南。在实际应用中,这样的功能对于团队协作、数据共享和决策支持都十分有价值。

    C++读写Excel文件

    **C++读写Excel文件——使用OpenXLSX库** 在C++编程中,处理Excel文件通常是数据分析、报告生成或数据存储的重要环节。OpenXLSX是一个轻量级且高效的开源库,它允许开发者在C++环境中方便地读取、写入、创建和修改....

    VBA从未打开的文件读数据

    标题中的“VBA从未打开的文件读数据”指的是利用VBA宏来实现这个功能。描述提到的VBa代码示例展示了如何操作,下面我们将详细解释这个过程。 首先,我们要明确的是,VBA是Visual Basic for Applications的缩写,它...

    C++ 生成Word,Excel,Txt实例程序

    本项目是关于使用C++生成三种常见文档格式:Microsoft Word(.doc或.docx)、Microsoft Excel(.xls或.xlsx)以及纯文本文件(.txt)。这个实例程序是一个动态链接库(DLL),在Visual Studio 2013环境下开发,它...

    6种格式转换成Txt(工具包).rar

    "6种格式转换成Txt(工具包).rar" 提供了一个解决方案,它包含了一组工具,能够帮助用户将不同格式的电子书文件转化为普遍易读的TXT格式。这种格式转换工具包对于那些希望跨平台阅读、分析文本或简化数据处理的用户...

    读exl文件方法.rar_c++ exl_exl_文件exl

    - "读exl文件方法"可能是代码文件的名字,其中包含了实现读取Excel文件的类或函数。 4. **具体实现**: - 首先,创建一个类来封装读取Excel文件的方法。类可能包含初始化、打开文件、读取特定单元格和关闭文件等...

Global site tag (gtag.js) - Google Analytics