`

POI读取excel

    博客分类:
  • java
阅读更多
读取excel大概在java中有两种方法,选用apache的POI读取
示例
public class ExportStandName {

	/**
	 * 取得标准表中的标准字段放在一个map的key中
	 *
	 * @return standMap
	 */
	private Map<String, String> readStandExcel() {
		Map<String, String> standMap = new HashMap<String, String>();
		String filePath = "path/Stand.xls";
		File file = new File(filePath);
		try {
			FileInputStream fileInputStream = new FileInputStream(file);
			POIFSFileSystem readPoiFileSystem = new POIFSFileSystem(
					fileInputStream);
			HSSFWorkbook workbook = new HSSFWorkbook(readPoiFileSystem);
			HSSFSheet sheet = workbook.getSheetAt(0);
			Iterator<Row> rows = sheet.rowIterator();
			while (rows.hasNext()) {
				Row row = rows.next();
				String name = row.getCell(1).getStringCellValue();
				standMap.put(name, "");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		for (String s : standMap.keySet()) {
			System.out.println(s);
		}
		return standMap;
	}

	/**
	 *
	 *
	 * @param location
	 * @param map
	 * @return map
	 */
	private Map<String, String> readCityExcel(String location,
			Map<String, String> map) {
		Map<String,String>cityMap=new HashMap<String, String>();
		String filePath = "C:/Users/Administrator/Desktop/工作/" + location
				+ ".xls";
		File file = new File(filePath);
		try {
			POIFSFileSystem readPoiFileSystem = new POIFSFileSystem(
					new FileInputStream(file));
			HSSFWorkbook workbook = new HSSFWorkbook(readPoiFileSystem);
			HSSFSheet sheet = workbook.getSheetAt(0);
			Iterator<Row> rows = sheet.rowIterator();
			while (rows.hasNext()) {
				Row row = rows.next();
				String value = row.getCell(0).getStringCellValue();
				System.out.println(">>>>>" + value);
				Cell cell = row.getCell(3);
				if (cell.getCellType() != Cell.CELL_TYPE_NUMERIC) {
					String name = row.getCell(3).getStringCellValue();
					if (name != null && name.length() > 0) {
						String mapValue = cityMap.get(name);
						if (map.containsKey(name)) {
							value += ",";
							mapValue += value;
							cityMap.put(name, mapValue);
						}
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return cityMap;
	}

	private void writeExcel(int index,String location, Map<String, String> map) {
		
		String filePath = "C:/Users/Administrator/Desktop/工作/Stand.xls";
		File file = new File(filePath);
		FileOutputStream fileOutputStream = null;
		try {
			POIFSFileSystem readPoiFileSystem = new POIFSFileSystem(new FileInputStream(file));
			HSSFWorkbook readWorkbook = new HSSFWorkbook(readPoiFileSystem);
			HSSFSheet readSheet = readWorkbook.getSheetAt(0);
			Row row1 = readSheet.getRow(0);
			if(row1==null){
				row1=readSheet.createRow(0);
			}
			int rowNum = row1.getLastCellNum();
			HSSFCell pnCell = null;
			if (index >=rowNum) {
				pnCell = (HSSFCell) row1.createCell(index);
			} else {
				pnCell=(HSSFCell)row1.getCell(index);
			}
			pnCell.setCellValue(location);
			for(Row row:readSheet){
				HSSFCell nameCell=(HSSFCell)row.getCell(1);
				if(nameCell!=null){
					String name=nameCell.getStringCellValue();
					HSSFCell valueCell=(HSSFCell)row.getCell(index);
					if(valueCell==null){
						valueCell=(HSSFCell)row.createCell(index);
					}
					String value=map.get(name);
					if(value!=null&&value.length()>0){
						value = value.substring(4, value.length()-1);
					}
					valueCell.setCellValue(value);
				}
			}
			fileOutputStream=new FileOutputStream(file);
			fileOutputStream.flush();
			readWorkbook.write(fileOutputStream);
			fileOutputStream.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	
	public void doSomething() {
		Map<String, String> map = readStandExcel();
		setStanMap(map);
		Map<String, String> map1=null;
		for (int i = 0; i < locations.length; i++) {
			map1= readCityExcel(locations[i], getStanMap());
			writeExcel(i + 2, locations[i], map1);
		}
	}
	public static void main(String[] args) {
		new ExportStandName().doSomething();
//		String value = "啊21保守党发按时";
//		value = value.substring(0,value.length()-1);
//		System.out.println(value);
	}
}
分享到:
评论

相关推荐

    利用POI读取excel写入到word

    要实现"利用POI读取excel写入到word",我们需要以下步骤: 1. **准备环境**:首先,确保你的项目已经引入了Apache POI的依赖。在给定的压缩包中,"poi - 副本"可能是包含POI库的JAR文件,你需要将其添加到你的项目...

    poi读取excel文件

    Apache POI提供了丰富的API,可以实现对Excel文件的复杂操作,如合并单元格、设置样式、处理公式等。在Android开发中,这些功能同样适用,但需要注意资源管理,因为Android设备的内存有限。 总的来说,Apache POI是...

    poi读取excel并输出到jsp页面

    标题中的“poi读取excel并输出到jsp页面”是指使用Apache POI库来处理Microsoft Excel文件,并将数据在JavaServer Pages (JSP) 页面上显示的技术。Apache POI 是一个开源项目,它允许开发者创建、修改和显示MS ...

    android5使用poi读取excel

    android5使用poi读取excel,android5使用poi读取excel,android5使用poi读取excel,android5使用poi读取excel

    android POI 读取excel 精简jar

    Apache POI提供对Microsoft Office格式的全面支持,包括Excel的.xlsx格式。此精简版可能是为了减小Android应用的体积和提高性能,移除了不必要的部分,但仍保留了读取Excel文件的核心功能。 3. **aa-poi-ooxml-...

    poi读取excel文件实例(兼容excel2007)

    在“poi读取excel文件实例”中,我们将讨论如何使用Apache POI API来读取和操作Excel 2007文件。以下是一些关键知识点: 1. **创建工作簿对象**:首先,你需要通过`WorkbookFactory`类的`create()`方法打开或创建一...

    POI读取excel的内容.zip

    本教程将详细讲解如何使用Apache POI库来读取Excel文件的内容。 首先,为了在Java项目中使用Apache POI,我们需要通过Maven进行依赖管理。在`pom.xml`文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache.poi ...

    poi读取Excel用到的jar包

    标题提到的“poi读取Excel用到的jar包”指的是在Java项目中使用POI库进行Excel操作所需引入的依赖文件。这些jar包在描述中给出,包括了以下几个: 1. poi-ooxml-schemas-3.8-beta5-20111217.jar:这个文件包含了...

    poi 读取excel小实例

    实现了JAVA 窗口,读取EXCEL文件,用poi读取EXCEL内容只是一个小例子

    apache POI 读取 Excel

    apache poi 读取 Excel 的 jar 包 博文链接:https://wxinpeng.iteye.com/blog/231895

    POI读取Excel带格式数据

    本篇将详细讲解如何使用Apache POI读取Excel文件中的带格式数据。 首先,理解Apache POI的基本架构至关重要。POI提供了HSSF(Horrible Spreadsheet Format)用于处理老版本的.xls文件,而XSSF用于处理较新的.xlsx...

    POI生成Excel POI操作Excel POI读取Excel POI类库

    **POI读取Excel** 读取Excel主要涉及以下步骤: 1. **打开Workbook**:通过 FileInputStream 读取Excel文件,然后创建Workbook对象。 2. **获取Sheet**:从Workbook中获取需要的Sheet。 3. **遍历Row和Cell**:...

    POI读取Excel

    在这个例子中,我们主要关注如何使用POI读取Excel文件。以下是对给定代码的详细解释以及相关知识点: 1. **导入所需的库**: 首先,我们需要导入Apache POI相关的类,如`File`, `FileInputStream`, `IOException`,...

    java POI读取excel文件数据

    在这个场景中,我们将详细探讨如何使用Java POI读取Excel文件中的数据,包括获取总行数、列数、单元格内容、合并单元格、行高、列宽以及图片等信息。 首先,确保在项目中已经引入了Apache POI的依赖库。如果你使用...

    poi读取excel并校验小例子

    在"poi读取excel并校验小例子"中,我们可能首先创建一个`XSSFWorkbook`实例来打开Excel文件,然后通过工作表索引获取对应的`XSSFSheet`对象。例如: ```java FileInputStream fis = new FileInputStream("example....

    poi读取excel2007和2003兼容工具例子

    在这个"poi读取excel2007和2003兼容工具例子"中,我们将探讨如何使用POI来读取不同版本的Excel文件,特别是Excel 2003(.xls)和Excel 2007及更高版本(.xlsx)。 1. **Apache POI库**:Apache POI是Apache软件基金...

    POI读取excel的例子

    POI读取excel的例子

    POI读取Excel合并单元格并储存

    本文将深入探讨如何使用Java的Apache POI库来读取Excel文件,并处理其中合并单元格的数据,同时将这些数据存储到实体类中以供后续使用。 Apache POI是一个强大的库,允许程序员使用Java来创建、修改和显示Microsoft...

    POI读取EXCEL教程

    在Java编程环境中,如果你需要读取或写入Excel文件,POI 提供了强大的支持。本教程将深入讲解如何使用POI的HSSF组件来处理Excel 97-2003格式的文件(BIFF8格式)。 一、Excel基础 Excel 97 文件格式,也被称作BIFF8...

    ExcelUtil借助反射和POI对Excel读取,省略了以往读取Excel的繁琐步骤

    本篇将详细讲解如何利用Java的开源库Apache POI,结合反射机制,通过ExcelUtil工具类简化Excel读取的过程。 Apache POI是一个强大的库,它允许Java程序员创建、修改和展示MS Office格式的文件,包括Excel。在传统的...

Global site tag (gtag.js) - Google Analytics