poi导出excel数据名目配置,电子表格poi导入导出excel表格的数据
归并单位格换行方法跟普通单位格的换行方法一样,有两种方法,一个是配置自动换行,一个是配置强制换行,下面别离先容。
1、自动换行。
选中归并单位格,右键配置单位格名目,抖客教程网,在对齐呼吁中,选中自动换行。这样改变归并单位格的列宽,数据就跟从列宽的巨细自动换行。
2、强制换行。
选中归并单位格,将光标放在需要换行的位置,按下alt+enter键,强制换行。强制换行的数据,不会因单位格列宽的巨细而改变。
2. javapoi导出excel利用pl/sqldeveloper可以完成1、控制面板-->打点东西-->数据源(ODBC)-->添加-->选择驱动*.xls-->完成-->选择你的excel表格2、pl/sql-->tools-->ODBCImporterDataFromODBC标签页:DSN选择刚刚添加的数据源,点击connectDataToOracle标签页:选择对应的表3、点击Import,可以完成导入需要留意的是,excel中列的顺序和数据库表的字段顺序最好保持一致,excel列的标题和字段名称保持一致,这样导入的时候,会自动匹配。
3. poi excel导入首先要导入spring相关包,poi,和fileupload包,我是利用maven构建的。
一.导入excel
(1)利用spring上传文件
a.前台页面提交
<form action="${pageContext.request.contextPath}/brand/importBrandSort" method="post" enctype="multipart/form-data">
<input type="hidden">
<div >
<div >
<label ><input type="file" accept="xls"/></label>
<div >
<input type="submit" value="导入Excel"/>
</div>
</div>
</div>
<div >
<button type="button" data-dismiss="modal" >打消</button>
</div>
b.靠山spring的controller举办相关操纵,这里主要讲的是利用spring上传文件,和读取文件信息。
利用spring上传文件之前,需要设置bean。
<bean ></bean>@RequestMapping(value = "/importBrandSort", method = RequestMethod.POST)
public ModelAndView importBrandSort(@RequestParam("filename") MultipartFile file,
HttpServletRequest request,HttpServletResponse response) throws Exception {
String temp = request.getSession().getServletContext()
.getRealPath(File.separator)
+ "temp"; // 姑且目次
File tempFile = new File(temp);
if (!tempFile.exists()) {
tempFile.mkdirs();
}
DiskFileUpload fu = new DiskFileUpload();
fu.setSizeMax(10 * 1024 * 1024); // 配置答允用户上传文件巨细,单元:位
fu.setSizeThreshold(4096); // 配置最多只答允在内存中存储的数据,单元:位
fu.setRepositoryPath(temp); // 配置一旦文件巨细高出getSizeThreshold()的值时数据存放在硬盘的目次
// 开始读取上传信息
//
int index = 0;
/* List fileItems = null;
try {
fileItems = fu.parseRequest(request);
}
catch (Exception e) {
e.printStackTrace();
}
Iterator iter = fileItems.iterator(); // 依次处理惩罚每个上传的文件
FileItem fileItem = null;
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();// 忽略其他不是文件域的所有表单信息
if (!item.isFormField()) {
fileItem = item;
// index++;
}
}
if (fileItem == null)
return null;
*/
if (file == null)
return null;
logger.info(file.getOriginalFilename());
String name = file.getOriginalFilename();// 获取上传文件名,包罗路径
//name = name.substring(name.lastIndexOf("\\") + 1);// 从全路径中提取文件名
long size = file.getSize();
if ((name == null || name.equals("")) && size == 0)
return null;
InputStream in = file.getInputStream();
List<BrandMobileInfoEntity> BrandMobileInfos = brandService
.importBrandPeriodSort(in);
// 改为人工刷新缓存KeyContextManager.clearPeriodCacheData(new
// PeriodDimensions());// 清理所有缓存
int count = BrandMobileInfos.size();
String strAlertMsg ="";
if(count!=0){
strAlertMsg= "乐成导入" + count + "条!";
}else {
strAlertMsg = "导入失败!";
}
logger.info(strAlertMsg);
//request.setAttribute("brandPeriodSortList", BrandMobileInfos);
//request.setAttribute("strAlertMsg", strAlertMsg);
request.getSession().setAttribute("msg",strAlertMsg);
return get(request, response);
//return null;
}
代码中的注释部门是假如不利用spring的方法,怎么拿到提交过来的文件名(需要是要apache的一些东西包),其实利用spring的也是一样,只是已经做好了封装,利便我们写代码。
代码中的后半部门是读取完上传文文件的信息和对数据库举办更新之后,输出到前台页面的信息。
上述代码中: InputStream in = file.getInputStream();
List<BrandMobileInfoEntity> BrandMobileInfos = brandService
.importBrandPeriodSort(in);读取excel的信息。
(2)利用poi读取excel
a.更新数据库
@Override
public List<BrandMobileInfoEntity> importBrandPeriodSort(InputStream in) throws Exception {
List<BrandMobileInfoEntity> brandMobileInfos = readBrandPeriodSorXls(in);
for (BrandMobileInfoEntity brandMobileInfo : brandMobileInfos) {
mapper.updateByConditions(brandMobileInfo);
}
return brandMobileInfos;
}