`
xihuan&java
  • 浏览: 161631 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

excel导入导出

    博客分类:
  • ssh
 
阅读更多
最近在一个项目中涉及到了excel导入导出,excel导出用的POI
导出excel其实就是创建一个工作表,
HSSFWorkbook wb = new HSSFWorkbook();
然后创建sheet
HSSFSheet sheet = wb.createSheet("数据信息");
通过sheet创建row
HSSFRow row = sheet.createRow( rowNumber++ ); 
通过row创建cell
HSSFCell cell = row.createCell((short) 0);

具体实现是:
public void exportExcel(){
		List<Yxjszm> dataset =  yxjszmManager.getListByBean(bean);

  HttpServletResponse response = (HttpServletResponse)
		ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_RESPONSE);

		try {
			int rowNumber = 0;

			HSSFWorkbook wb = new HSSFWorkbook();
			/* 字体样式 */
			HSSFFont font = wb.createFont();
			font.setFontHeightInPoints((short) 12);
			font.setFontName("Arial"); 

			HSSFCellStyle style = wb.createCellStyle();//背景有颜色     
			style.setFont(font);   
			style.setBorderLeft(HSSFCellStyle.BORDER_THIN);  // 左边框
			style.setBorderTop(HSSFCellStyle.BORDER_THIN);   // 上边框
			style.setBorderRight(HSSFCellStyle.BORDER_THIN); // 右边框
			style.setBorderBottom(HSSFCellStyle.BORDER_THIN);// 下边框   
			style.setFillPattern(HSSFCellStyle.BRICKS);   
			style.setAlignment(HSSFCellStyle.ALIGN_CENTER);  // 位于中间
			style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);   
			style.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index); // 灰色
			style.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index); // 灰色
			style.setWrapText(true);  // 当文字长于该列的宽度时,自动把宽加长

			HSSFCellStyle style2 = wb.createCellStyle();   
			style2.setFont(font);   
			style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);   
			style2.setBorderTop(HSSFCellStyle.BORDER_THIN);   
			style2.setBorderRight(HSSFCellStyle.BORDER_THIN);   
			style2.setBorderBottom(HSSFCellStyle.BORDER_THIN);   
			style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);   
			style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);   
			style2.setWrapText(true);    



			HSSFSheet sheet = wb.createSheet("数据信息");

			sheet.setColumnWidth((short) 0, (short) 6000); //默认设置宽度
			sheet.setColumnWidth((short) 1, (short) 6000); //默认设置宽度
			sheet.setColumnWidth((short) 2, (short) 4000); //默认设置宽度
			sheet.setColumnWidth((short) 3, (short) 4000); //默认设置宽度
			sheet.setColumnWidth((short) 4, (short) 4000); //默认设置宽度
			sheet.setColumnWidth((short) 5, (short) 4000); //默认设置宽度


			HSSFRow row = sheet.createRow( rowNumber++ ); 
			HSSFCell cell = row.createCell((short) 0);
			cell.setEncoding(HSSFCell.ENCODING_UTF_16);
			cell.setCellValue("序号"); 
			cell.setCellStyle(style);  
            
			cell = row.createCell((short) 1);
			cell.setEncoding(HSSFCell.ENCODING_UTF_16);
			cell.setCellValue( "别名" );
			cell.setCellStyle(style);
			
			cell = row.createCell((short) 2);
			cell.setEncoding(HSSFCell.ENCODING_UTF_16);
			cell.setCellValue( "名Id" );
			cell.setCellStyle(style); 
			
			//sheet.addMergedRegion( new Region(0, (short) 1, 0, (short) 5 ) );
			cell = row.createCell((short) 3);
			cell.setEncoding(HSSFCell.ENCODING_UTF_16);
			cell.setCellValue( "名" );
			cell.setCellStyle(style); 

			cell = row.createCell((short) 4);
			cell.setEncoding(HSSFCell.ENCODING_UTF_16);
			cell.setCellValue( "码" );
			cell.setCellStyle(style);
			
			
			cell = row.createCell((short) 5);
			cell.setEncoding(HSSFCell.ENCODING_UTF_16);
			cell.setCellValue( "上下" );
			cell.setCellStyle(style);
			
			
			for (int i = 0; i < dataset.size(); ++i){

				Yxjszm zm = (Yxjszm) dataset.get(i);

				rowNumber = this.addRowExcelInfor(cell, sheet, row,  style2,zm, rowNumber) ;

			} 
			String title = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); 
			response.setCharacterEncoding("UTF-8");
			response.setContentType("octets/stream");// 设置输出流
			response.addHeader("Content-Disposition", "attachment;filename="
					+ title + ".xls");// 向客户端输出xls文件

			OutputStream os=response.getOutputStream();
			//add workbook to OutpustStream
			wb.write(os);
			os.flush();
			os.close();

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}


	} 

	private int addRowExcelInfor(HSSFCell cell , HSSFSheet sheet , HSSFRow row ,HSSFCellStyle style2, Yxjszm zm , int rowNumber){
		row = sheet.createRow( rowNumber++ );

		cell = row.createCell((short) 0);
		cell.setEncoding(HSSFCell.ENCODING_UTF_16);
		cell.setCellValue(zm.getSn() );
		cell.setCellStyle(style2); 
		
		cell = row.createCell((short) 1);
		cell.setEncoding(HSSFCell.ENCODING_UTF_16);
		cell.setCellValue(zm.getRunPostlineid());
		cell.setCellStyle(style2);
		
		cell = row.createCell((short) 2);
		cell.setEncoding(HSSFCell.ENCODING_UTF_16);
		cell.setCellValue( zm.getStationId()  );
		cell.setCellStyle(style2);

		cell = row.createCell((short) 3);
		cell.setEncoding(HSSFCell.ENCODING_UTF_16);
		cell.setCellValue( zm.getStationName()  );
		cell.setCellStyle(style2); 

		cell = row.createCell((short) 4);
		cell.setEncoding(HSSFCell.ENCODING_UTF_16);
		cell.setCellValue(zm.getSpell());
		cell.setCellStyle(style2); 
		

		cell = row.createCell((short) 5);
		cell.setEncoding(HSSFCell.ENCODING_UTF_16);
		cell.setCellValue(zm.getUpDown());
		cell.setCellStyle(style2);
		
		
		cell.setCellStyle(style2);
		
		return rowNumber;
	} 

导入excel到数据库用jxl读取excel:
public void upload() throws IOException, BiffException{
	    String targetDirectory =contextPvd.getAppRealPath("")+"/upload";
        String targetFileName = uploadFileName;
        File target = new File(targetDirectory, targetFileName);
        FileUtils.copyFile(upload, target);            
        setUploadFileName(target.getPath());//保存文件的存放路径
        Workbook rwb = null;
        Cell cell = null;
        //创建输入流
        InputStream stream = new FileInputStream(target);
        //获取Excel文件对象
        rwb = Workbook.getWorkbook(stream);
        //获取文件的指定工作表 默认的第一个
        Sheet sheet = rwb.getSheet(0);  
        //行数(表头的目录不需要,从1开始)
        PrintWriter out = contextPvd.getResponse().getWriter();
      //  StringBuffer script =new StringBuffer();
        for(int i=1; i<sheet.getRows(); i++){
        	Yxjszm zm=new Yxjszm();
        		  //取号
        		  cell = sheet.getCell(0,i);
        		  zm.setSn(Long.parseLong(cell.getContents()));
  
        		  //取路id
        		  cell = sheet.getCell(1,i);
        		  zm.setRunPostlineid(cell.getContents());
  
        		  //取id
        		  cell = sheet.getCell(2,i);
        		  zm.setStationId(cell.getContents());
        		  
        		  //取名
        		  cell = sheet.getCell(3,i);
        		  zm.setStationName(cell.getContents());
        		  
        		  //取码
        		  cell = sheet.getCell(4,i);
        		  zm.setSpell(cell.getContents());
        		  
        		//取上下行
        		  cell = sheet.getCell(5,i);
        		  zm.setUpDown(Long.parseLong(cell.getContents()));
        		 findList = yxjszmManager.findListByXlAndZm(zm.getRunPostlineid(), zm.getStationName());
        		  if(findList.size()>0)
        		  {
        			  log.info("此路("+zm.getRunPostlineid()+")对应站名("+zm.getStationName()+")已存在!");
        		  }
        		  else
        		  {
        			  yxjszmManager.save(zm);
        			  log.info("线路("+zm.getRunPostlineid()+")"+"站名("+zm.getStationName()+")添加成功!"); 
        			  out.write("<script>parent.editFlag("+i+",'1')</script>");
        			  out.flush();
        		  }
        }
        	out.close();
        	stream.close();
        	target.delete();
 
	}


分享到:
评论

相关推荐

    asp将EXCEL导入导出数据库原程序

    这个"asp将EXCEL导入导出数据库原程序"提供了一个解决方案,能够方便地将Excel中的数据存入MSSQL数据库,同时也能将数据库中的数据导出到Excel文件。 首先,我们需要了解如何使用ASP连接MSSQL数据库。通常,这涉及...

    Thinkphp5整合excel导入导出

    Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel...

    Excel导入导出项目 简单的

    Excel导入导出Excel导入导出Excel导入导出Excel导入导出Excel导入导出Excel导入导出Excel导入导出Excel导入导出Excel导入导出Excel导入导出Excel导入导出Excel导入导出

    java_poi实现excel导入导出

    Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 Excel 文件。在本文中,我们将详细介绍如何使用 Java POI 实现 Excel 导入导出功能。 1. 什么是 Java ...

    thinkhphp3.2 excel导入导出demo

    thinkhphp3.2 excel导入导出demothinkhphp3.2 excel导入导出demothinkhphp3.2 excel导入导出demothinkhphp3.2 excel导入导出demothinkhphp3.2 excel导入导出demothinkhphp3.2 excel导入导出demothinkhphp3.2 excel...

    Java POI EXCEL导入导出

    Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出...

    excel导入导出性能优化

    在IT行业中,Excel导入导出性能优化是一个常见且重要的议题,尤其对于处理大量数据的应用程序。Excel文件格式广泛用于数据存储和分析,但其导入和导出操作可能会对系统性能产生显著影响,尤其是在高并发环境下。以下...

    Excel导入导出工具包

    万能的Excel导入导出工具. 支持从List中导出. 支持从List中导入导出. 支持从List里面还有List&lt;POJO&gt;&gt;中导入导出. 支持导出类似课程表结构类型纵表. 支持国际化. 支持数据字典. 支持单元格中下拉框数据校验. 支持自动...

    excel 导入导出插件

    Excel导入导出插件是一种工具,它扩展了Excel的功能,使得用户能够方便地从电子表格中导入数据到其他系统,或者从外部数据源导出数据到Excel进行分析和处理。这种插件通常用于数据迁移、数据整合或数据分析,特别是...

    Excel导入导出封装

    针对Office 2003和Office 2007版本的Excel导入导出功能,开发者通常需要编写特定的代码来实现自动化操作。"Excel导入导出封装"是一个专门解决这一问题的测试类库,旨在简化这一过程,提高开发效率。 首先,我们要...

    Excel 导入导出 (asp.net/c#)

    标题"Excel 导入导出 (asp.net/c#)"所涉及的核心知识点主要包括Excel文件操作、C#编程以及ASP.NET web应用程序开发。下面我们将详细探讨这些主题。 1. **Excel文件操作**: - **Microsoft.Office.Interop.Excel**:...

    Java实现Excel导入导出

    Excel源代码,导入导出各种工具类 &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi-scratchpad 代码实例: String path = ""; byte[] bytes; vo.setCurrentPage(0); vo....

    C# Excel 导入导出

    Excel导入导出是常见的需求,例如数据处理、报表生成和数据分析等。本篇文章将详细探讨C#如何实现Excel的导入导出功能。 首先,我们需要知道在C#中操作Excel有两种主要方式:一是使用Microsoft.Office.Interop....

    Excel导入导出

    在提供的压缩包文件中,可能包含已经封装好的方法和DLL,这些预封装的方法简化了Excel导入导出的过程,使得开发者可以直接调用,而无需关心底层的实现细节。这通常会提高开发效率,减少错误,并且便于代码维护。 ...

    普元导入导出用于Excel导入导出

    "普元导入导出"是普元信息公司提供的一个功能模块,主要应用于数据的批量导入与导出,尤其适用于与Excel文件的交互。这个功能在数据管理、数据分析以及日常业务处理中十分常见,因为它能够方便地将大量结构化数据在...

    Struts2 Excel导入导出数据

    在处理数据导入导出方面,Struts2提供了强大的支持,特别是与Excel文件的交互。本教程将深入探讨如何利用Struts2实现从Oracle数据库导出数据到Excel,以及如何将Excel文件中的数据导入到Oracle。 首先,我们需要...

    Excel导入导出 jxl及Poi 工具类

    在Java开发中,处理Excel数据是一项常见的任务,无论是读取大量数据进行分析,还是批量导入导出信息。这里我们关注的是两个主要的库:jxl和Apache POI,它们都是用于处理Excel文件的强大工具。 首先,让我们深入...

    Java实现Excel导入导出功能

    在Java编程领域,实现Excel的导入导出功能是一项常见的任务,尤其在数据分析、报表生成以及数据交换等场景中。本文将深入探讨如何使用Java来处理Excel文件,包括读取、写入以及转换Excel数据。 首先,Java实现Excel...

    Excel导入导出,ASP

    在给定的标题“Excel导入导出,ASP”和描述中,我们可以看出这是一个关于如何在ASP环境中利用编程技术实现Excel与Access之间数据交换的教程。下面我们将详细探讨这些知识点。 首先,Excel是一种强大的电子表格工具,...

Global site tag (gtag.js) - Google Analytics