poi的excel下载路径应该怎么设置 POI导出excel表时文件名变成乱码怎么办?

[更新]
·
·
分类:互联网
1319 阅读

poi的excel下载路径应该怎么设置

POI导出excel表时文件名变成乱码怎么办?

POI导出excel表时文件名变成乱码怎么办?

利用poi操作excel。同一个workbook 中创建的 cellstyle 不能超过4000 。估计你是遍历单元格创建生成的吧?可考虑创建map集合缓存必要cellstyle格式。已存在格式直接设置使用,不存在的再创建。一般情况下,一个workbook中使用到的cellstyle格式不会超过500!

使用poi操作excel表格,如何做序号?

编辑Excel表格时,快速编写数字序号,如果是在横向或竖向添加,你只需要先输入1、2、3、后这几个数字全选,鼠标位于右下角呈加号后往下拉,数字序号就形成了,这些数字序号也可以是时间或年份等等。

导入时在导入文件路径里面找不到EXCEL格式的文件?

首先你要明白导入文件步骤:
1.实例化excel读取对象
2.加载excel文件
全部加载
选择加载
3.读取excel文件
全部读取
逐行读取
以下你看看那个更加适应你
顺便列出几个其他语言导入Excel文件,希望对你有帮助
PHP导入Excel文件
java把Excel文件数据导入数据库
PHP实现导出Excel文件通用方法
JXL生成的excel文件 JAVA文件下载功能
Java通用的Excel文件生成工具类,支持生成文件和浏览器直接下载
java处理Excel文件---excel文件的创建,删除,写入,读取
Java读取Excel文件
jxl解析Excel文件
JXL操作Excel文件
java POI读取Excel文件
java使用poi读取excel文件代码示例
用jxl生成Excel文件
PHP验证码文件类
PHP 下载远程文件
PHP获取远程文件的大小
php压缩CSS文件
PHP强制下载文件
php读取csv文件类
php 简单ftp文件上传范例
一个php 生成zip文件的类

springMVC怎么把结果集写入Excel并导出?

首先要导入spring相关包,poi,和fileupload包,我是使用maven构建的。
一.导入excel
(1)使用spring上传文件
a.前台页面提交
form nameexcelImportForm action${}/brand/importBrandSort methodpost onsubmitreturn checkImportPath(); enctypemultipart/form-data idexcelImportForm
input typehidden nameids idids
div
div
label input idexcel_file typefile namefilename acceptxls//label
div
input idexcel_button typesubmit value导入Excel/
/div
/div
/div
div
button typebutton data-dismissmodal onClickuncheckBoxes();取消/button
/div
b.后台spring的controller进行相关操作,这里主要讲的是使用spring上传文件,和读取文件信息。
使用spring上传文件之前,需要配置bean。
bean idmultipartResolver /(value /importBrandSort, method )
public ModelAndView importBrandSort(@RequestParam(filename) MultipartFile file,
HttpServletRequest request,HttpServletResponse response) throws Exception {
String temp ().getServletContext()
()
temp; // 临时目录
File tempFile new File(temp);
if (!tempFile.exists()) {
();
}
DiskFileUpload fu new DiskFileUpload();
(10 * 1024 * 1024); // 设置允许用户上传文件大小,单位:位
(4096); // 设置最多只允许在内存中存储的数据,单位:位
(temp); // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
// 开始读取上传信息
//
int index 0;
/* List fileItems null;
try {
fileItems (request);
}
catch (Exception e) {
();
}
Iterator iter (); // 依次处理每个上传的文件
FileItem fileItem null;
while (iter.hasNext()) {
FileItem item (FileItem) ();// 忽略其他不是文件域的所有表单信息
if (!()) {
fileItem item;
// index ;
}
}
if (fileItem null)
return null;
*/
if (file null)
return null;
(());
String name ();// 获取上传文件名,包括路径
//name (() 1);// 从全路径中提取文件名
long size ();
if ((name null || name.equals()) size 0)
return null;
InputStream in ();
ListBrandMobileInfoEntity BrandMobileInfos brandService
(in);
// 改为人工刷新缓存(new
// PeriodDimensions());// 清理所有缓存
int count ();
String strAlertMsg ;
if(count!0){
strAlertMsg 成功导入 count 条!;
}else {
strAlertMsg 导入失败!;
}
(strAlertMsg);
(brandPeriodSortList, BrandMobileInfos);
(strAlertMsg, strAlertMsg);
().setAttribute(msg,strAlertMsg);
return get(request, response);
//return null;
}
代码中的注释部分是如果不使用spring的方式,如何拿到提交过来的文件名(需要是要apache的一些工具包),其实使用spring的也是一样,只是已经做好了封装,方便我们写代码。
代码中的后半部分是读取完上传文文件的信息和对数据库进行更新之后,输出到前台页面的信息。
上述代码中: InputStream in ();
ListBrandMobileInfoEntity BrandMobileInfos brandService
(in);读取excel的信息。
(2)使用poi读取excel
a.更新数据库
r
public ListBrandMobileInfoEntity importBrandPeriodSort(InputStream in) throws Exception {
ListBrandMobileInfoEntity brandMobileInfos readBrandPeriodSorXls(in);
for (BrandMobileInfoEntity brandMobileInfo : brandMobileInfos) {
mapper.updateByConditions(brandMobileInfo);
}
return brandMobileInfos;
}
这部分是sevice层的代码,用于读取excel信息之后更新数据库数据,我这里是使用mybatis。定义一个类BrandMobileInfoEntity,用与保存excel表每一行的信息,而List BrandMobileInfoEntity 则保存了全部信息,利用这些信息对数据库进行更新。
b.读取excel信息
private ListBrandMobileInfoEntity readBrandPeriodSorXls(InputStream is)
throws IOException, ParseException {
HSSFWorkbook hssfWorkbook new HSSFWorkbook(is);
ListBrandMobileInfoEntity brandMobileInfos new ArrayListBrandMobileInfoEntity();
BrandMobileInfoEntity brandMobileInfo;
// 循环工作表Sheet
for (int numSheet 0;
numSheet (); numSheet ) {
HSSFSheet hssfSheet (numSheet);
if (hssfSheet null) {
continue;
}
// 循环行Row
for (int rowNum 1; rowNum (); rowNum ) {
brandMobileInfo new BrandMobileInfoEntity();
HSSFRow hssfRow (rowNum);
for (int i 0; i (); i ) {
HSSFCell brandIdHSSFCell (i);
if (i 0) {
(Integer
(getCellValue(brandIdHSSFCell)));
} else if (i 1) {
continue;
} else if (i 2) {
((getCellValue(brandIdHSSFCell)));
} else if (i 3) {
((getCellValue(brandIdHSSFCell)));
} else if (i 4) {
(getCellValue(brandIdHSSFCell));
} else if (i 5) {
(getCellValue(brandIdHSSFCell));
} else if (i