Excel导入

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">action类:Excel导入</span>

<span style="white-space:pre">	</span>//注入代理对象
	@Resource
	private UserService userService;
<pre name="code" class="java"><span style="white-space:pre">	</span><pre name="code" class="java"><span style="white-space:pre">	</span>//要设置导入的excel文件 变量
	private File userExcel;//excel文件
	private String  userExcelFileName;//excel文件名称

//设置两个变量,文件和文件名称private File headImg;private String headImgFileName;

</pre><pre name="code" class="java"><span style="white-space:pre">	</span><pre name="code" class="java"><span style="white-space:pre">	</span>//excel导入有返回值,返回页面重写刷新
	public String importExcel() {
		
		//创建一个excel导入的方法=上传
	<span style="white-space:pre">	</span>userService.importExcel(userExcel);
		
		return "list";
	}

</pre><pre name="code" class="java"><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在action调用service层方法处理action的业务逻辑:</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">
</span>

<span style="white-space:pre">	</span>/**
	 * 导入excel文件
	 * @param userExcel excel文件
	 */
	void importExcel(File userExcel);
<span style="white-space:pre">	</span>// excel文件导入
	@Override
	public void importExcel(File userExcel) {
		try {
			// 根据文件,创建excel文件薄对象
			Workbook workbook = WorkbookFactory.create(userExcel);
			// 获取工作表
			Sheet sheet = workbook.getSheetAt(0);
			// 读取excel的每一行(即只获取有数据的行数)课外知识补充:excel总共65535行
			for (int i = 0; i < sheet.getPhysicalNumberOfRows(); i++) {
				// 从第三行开始读取
				Row row = sheet.getRow(i + 2);
				// 把每一行里面的数据封装成一个对象
				User user = new User();
				// 开始封装数据
				user.setName(row.getCell(0).getStringCellValue());
				user.setAccount(row.getCell(1).getStringCellValue());
				user.setDept(row.getCell(2).getStringCellValue());
				// 三元运算符 判断性别
				user.setGender("男".equals(row.getCell(3).getStringCellValue()) ? true
						: false);
				try {
					// 如果电话单元格是string,直接获取字符串数据
					user.setMobile(row.getCell(4).getStringCellValue());
				} catch (Exception e) {
					// 否则就转成字符串
					double mb = row.getCell(4).getNumericCellValue();
					BigDecimal bd = BigDecimal.valueOf(mb);
					user.setMobile(bd.toString());
				}
				user.setEmail(row.getCell(5).getStringCellValue());
				user.setBirthday(row.createCell(6).getDateCellValue());
				user.setPassword("000000000" + i);
				// 对象封装完毕,保存对象
				this.save(user);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
页面jsp代码块

<span style="white-space:pre">	</span><input type="button" value="导入" class="s_button" onclick="doImportExcel()"/> 

<span style="white-space:pre">	</span>//excel导入
      	function doImportExcel() {
      		//导入必须是post提交
      		document.forms[0].action ="user_importExcel.action";
      		document.forms[0].submit();
	}

导入用户列表  (读取excel; 文件上传)


        a. listUI.jsp
            点击:“导入”
                a1: 获取表单
                a2: 修改表单提交地址
                a3: 提交表单
                    post
                    multipart/form-data
        b. Action---> importExcel()
            b1: 获取上传的excel文件
            b2: 读取excel,
                    获取每一行数据,封装User对象,保存对象!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值