java前端传excel文件|java 将页面内容写入excel文件中并可以将其下载到本地任意位置

java前端传excel文件|java 将页面内容写入excel文件中并可以将其下载到本地任意位置的第1张示图

『壹』 java 将页面内容写入excel文件中并可以将其下载到本地任意位置

java本身袭要生成excel文件必然是在后台做的,通过poi库生成excel文件并制作表格。无法直接通过网页保存生成excel。至于下载到本地任意位置,也是后台生成了excel文件发送到前台(浏览器),由用户选择要存在哪儿,不能直接存储(这是web沙箱限制,不允许网页直接访问本地硬盘,不然你想想,如果你打开一个网页,网页代码可以任意访问你的硬盘,你还敢开网页吗)。要绕过沙箱限制必须装插件,也就是,你必须开发一个com或plugin插件,可以访问本地硬盘,但这需要用户手工安装(比如flash的插件,你之所以能用网页看flash是因为装了它的插件,但这是你手工装的,它不能绕过你直接给你装,它必须询问你行不行,你要手工点了OK,才能装)

『贰』 Java上传Excel表格

这不就是文件上传和下载嘛,在网上找个demo看看就可以了的,不是很难的。

『叁』 java怎么把excel文件导入到web网页上显示

1. 要正确的将Web客户端的Excel文件导入到服务器的数据库中,需要将客户端的Excel文件上传到服务器上。可以使用FileUpload控件完成。2. Excel文件上传到服务器指定的目录中,这里假设是该站点的upfiles目录中。3. 使用SQL语句从upfiles目录中的上传Excel文件中读取数据显示或写入数据库

『肆』 java导入Excel文件,但是不上传到服务器,思路是怎么样的

common-fileupload是jakarta项目组开发的一个功能很强大的上传文件组件下面先介绍上传文件到服务器(多文件上传):import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.util.*;import java.util.regex.*;import org.apache.commons.fileupload.*;public class upload extends HttpServlet { private static final String CONTENT_TYPE = "text/html; charset=GB2312"; //Process the HTTP Post request public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE); PrintWriter out=response.getWriter(); try { DiskFileUpload fu = new DiskFileUpload(); // 设置允许用户上传文件大小,单位:字节,这里设为2m fu.setSizeMax(2*1024*1024); // 设置最多只允许在内存中存储的数据,单位:字节 fu.setSizeThreshold(4096); // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录 fu.setRepositoryPath("c://windows//temp"); //开始读取上传信息 List fileItems = fu.parseRequest(request); // 依次处理每个上传的文件 Iterator iter = fileItems.iterator();//正则匹配,过滤路径取文件名 String regExp=".+////(.+)$";//过滤掉的文件类型String[] errorType={".exe",".com",".cgi",".asp"}; Pattern p = Pattern.compile(regExp); while (iter.hasNext()) { FileItem item = (FileItem)iter.next(); //忽略其他不是文件域的所有表单信息 if (!item.isFormField()) { String name = item.getName(); long size = item.getSize(); if((name==null||name.equals("")) && size==0) continue; Matcher m = p.matcher(name); boolean result = m.find(); if (result){ for (int temp=0;temp<ERRORTYPE.LENGTH;TEMP++){ if (m.group(1).endsWith(errorType[temp])){ throw new IOException(name+": wrong type"); } } try{//保存上传的文件到指定的目录//在下文中上传文件至数据库时,将对这里改写 item.write(new File("d://" + m.group(1)));out.print(name+" "+size+""); } catch(Exception e){ out.println(e); }} else { throw new IOException("fail to upload"); } } }} catch (IOException e){ out.println(e); } catch (FileUploadException e){ out.println(e); } }}现在介绍上传文件到服务器,下面只写出相关代码:以sql2000为例,表结构如下:字段名:name filecode类型: varchar image数据库插入代码为:PreparedStatement pstmt=conn.prepareStatement("insert into test values(?,?)");代码如下:。。。。。。try{ 这段代码如果不去掉,将一同写入到服务器中 //item.write(new File("d://" + m.group(1))); int byteread=0; //读取输入流,也就是上传的文件内容 InputStream inStream=item.getInputStream(); pstmt.setString(1,m.group(1)); pstmt.setBinaryStream(2,inStream,(int)size); pstmt.executeUpdate(); inStream.close();out.println(name+" "+size+" "); }。。。。。。这样就实现了上传文件至数据库。

『伍』 java,web项目我想上传一个rar压缩文件,里面有个excel和图片。

apache有个org.apache.tools.zip包可以实现袭zip、rar文件压缩和解压,也支持加密。可以找找关于这个包的资料。另外j2se里的java.util.zip包可以实现zip文件的压缩和解压,但不支持rar文件,也不支持加密。

『陆』 java怎么上传excel文件

java操作Excel的一种方法:在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI。其中jExcelAPI是一个韩国程序员的作品,虽然没有POI那样血统高贵,但是在使用过程中,感觉简单方便,对中文支持非常好,功能也比较强大。

『柒』 java web 怎么导入excel文件

1.要正确的将Web客户端的Excel文件导入到服务器的数据库中,需要将客户端的Excel文件上传到服务器上。可以使用FileUpload控件完成。2.Excel文件上传到服务器指定的目录中,这里假设是该站点的upfiles目录中。3.使用SQL语句从upfiles目录中的上传Excel文件中读取数据显示或写入数据库。

『捌』 java开发怎么导入导出excel里面信息内容

publicclassExcelExport{/***默认每个sheet页最多显示的行数*/privatestaticfinalintsheet_rows=50000;/***导出Excel文件**@paramtitleList*表头信息*@paramdataList*表格数据*@paramfileName*导出文件完整名称demo.xls*@paramrequest*@paramresponse*@throwsIOException*/(List<String>titleList,List<List<String>>dataList,StringfileName,HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{HSSFWorkbookworkBook=exportDataToExcel(titleList,dataList);response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");response.setCharacterEncoding("UTF-8");fileName=encodeFilename(fileName,request);response.setHeader("Content-disposition","attachment;filename="+fileName);workBook.write(response.getOutputStream());response.getOutputStream().flush();response.getOutputStream().close();}(Stringfilename,HttpServletRequestrequest){Stringagent=request.getHeader("USER-AGENT");try{if((agent!=null)&&(0<=agent.indexOf("Firefox"))){returnMimeUtility.encodeText(filename,"UTF-8","B");}elseif((agent!=null)&&(0<=agent.indexOf("Chrome"))){returnfilename=newString(filename.getBytes(),"ISO8859-1");}else{if(agent!=null){StringnewFileName=URLEncoder.encode(filename,"UTF-8");newFileName=StringUtils.replace(newFileName,"+","%20");if(newFileName.length()>150){newFileName=newString(filename.getBytes("GB2312"),"ISO8859-1");newFileName=StringUtils.replace(newFileName,"","%20");}returnnewFileName;}}}catch(Exceptionex){returnfilename;}returnfilename;}(List<String>titleList,List<List<String>>dataList){/*1.创建一个Excel文件*/HSSFWorkbookworkbook=newHSSFWorkbook();/*2.创建Excel的一个Sheet*/HSSFSheetsheet=workbook.createSheet();/*3.创建表头冻结*/sheet.createFreezePane(0,1);/*4.设置列宽*/for(inti=0;i<titleList.size();i++){sheet.setColumnWidth(i,5000);}/*5.表头字体*/HSSFFontheadfont=workbook.createFont();headfont.setFontName("宋体");headfont.setFontHeightInPoints((short)12);//字体大小headfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗/*6.表头样式*/HSSFCellStyleheadstyle=workbook.createCellStyle();headstyle.setFont(headfont);headstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右居中//设置背景色为蓝色headstyle.setFillForegroundColor(HSSFColor.LIGHT_BLUE.index);headstyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);/*7.普通单元格字体*/HSSFFontfont=workbook.createFont();font.setFontName("宋体");font.setFontHeightInPoints((short)12);/*8.普通单元格样式*/HSSFCellStylestyle=workbook.createCellStyle();style.setFont(font);style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右居中/*9.拼装表头*/Iterator<String>titleRowIterator=titleList.iterator();intcolumnIndex=0;HSSFRowrow=sheet.createRow(0);while(titleRowIterator.hasNext()){StringcellValue=titleRowIterator.next();HSSFCellcell=row.createCell(columnIndex);cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setCellValue(cellValue);cell.setCellStyle(headstyle);columnIndex++;cell=null;}/*10.组织表数据*/Iterator<List<String>>rowIterator=dataList.iterator();introwIndex=1;while(rowIterator.hasNext()){List<String>columnList=rowIterator.next();row=sheet.createRow(rowIndex);Iterator<String>columnIterator=columnList.iterator();columnIndex=0;while(columnIterator.hasNext()){StringcellValue=columnIterator.next();HSSFCellcell=row.createCell(columnIndex);cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setCellValue(cellValue);cell.setCellStyle(style);cell=null;columnIndex++;}row=null;rowIndex++;}returnworkbook;}/***重载导出数据到Excel中*@paramtitleList表头*@paramdataList表数据*@paramamount每个sheet页显示行数*@return*/(List<String>titleList,List<List<String>>dataList,intamount){/*1.创建一个Excel文件*/HSSFWorkbookworkbook=newHSSFWorkbook();//校验传入的参数if(titleList==null){titleList=newArrayList<String>();}//无数据直接返回if(dataList==null||dataList.size()==0){returnworkbook;}//传入数据不正确,按照默认条数显示if(amount>65535||amount<=0){amount=sheet_rows;}//获取sheet页的数量introw_num=0;inty=dataList.size()%amount;if(y==0){row_num=dataList.size()/amount;}else{row_num=dataList.size()/amount+1;}/*表头字体*/HSSFFontheadfont=workbook.createFont();headfont.setFontName("宋体");headfont.setFontHeightInPoints((short)12);//字体大小headfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗/*表头样式*/HSSFCellStyleheadstyle=workbook.createCellStyle();headstyle.setFont(headfont);headstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右居中//设置背景色为蓝色headstyle.setFillForegroundColor(HSSFColor.LIGHT_BLUE.index);headstyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);/*普通单元格字体*/HSSFFontfont=workbook.createFont();font.setFontName("宋体");font.setFontHeightInPoints((short)12);/*普通单元格样式*/HSSFCellStylestyle=workbook.createCellStyle();style.setFont(font);style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右居中//循环写入每个sheet页for(inti=0;i<row_num;i++){/*创建Excel的一个Sheet*/HSSFSheetsheet=workbook.createSheet();/*创建表头冻结*/sheet.createFreezePane(0,1);/*设置列宽*/for(intt=0;t<titleList.size();t++){sheet.setColumnWidth(t,5000);}/*拼装表头*/Iterator<String>titleRowIterator=titleList.iterator();intcolumnIndex=0;HSSFRowrow=sheet.createRow(0);while(titleRowIterator.hasNext()){StringcellValue=titleRowIterator.next();HSSFCellcell=row.createCell(columnIndex);cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setCellValue(cellValue);cell.setCellStyle(headstyle);columnIndex++;cell=null;}/*组织表数据*/introwIndex=1;for(intj=amount*i;(j<amount*(i+1)&&j<dataList.size());j++){List<String>columnList=dataList.get(j);row=sheet.createRow(rowIndex);Iterator<String>columnIterator=columnList.iterator();columnIndex=0;while(columnIterator.hasNext()){StringcellValue=columnIterator.next();HSSFCellcell=row.createCell(columnIndex);cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setCellValue(cellValue);cell.setCellStyle(style);cell=null;columnIndex++;}row=null;rowIndex++;}}returnworkbook;}/***重载导出Excel功能,新增一项amount每个sheet导出记录行数*@paramtitleList*@paramdataList*@paramfileName*@paramamount行数如果小于等于0或大于65535则按照默认显示*@paramrequest*@paramresponse*@throwsIOException*/(List<String>titleList,List<List<String>>dataList,StringfileName,intamount,HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{HSSFWorkbookworkBook=exportDataToExcel(titleList,dataList,amount);response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");response.setCharacterEncoding("UTF-8");fileName=encodeFilename(fileName,request);response.setHeader("Content-disposition","attachment;filename="+fileName);workBook.write(response.getOutputStream());response.getOutputStream().flush();response.getOutputStream().close();}}说明:main方法里的第一个参数为要导出的表头信息,第二个参数为数据信息,第三个参数设置文件名,设置好以后直接调用就可以导出Excle了;导入就是把文件存到服务器,可用Mogodb等数据库存储,以下是读取已存根据存储的文件id解析Excle数据的大致过程:POIFSFileSystemfs=null;if(!StringUtils.isBlank(fileId)){fs=newPOIFSFileSystem(newByteArrayInputStream(//传入对应的文件对象MongoFileUtil.readFile(fileId)));}//构造XSSFWorkbook对象,filePath传入文件路径HSSFWorkbookxwb=newHSSFWorkbook(fs);//读取第一个sheetHSSFSheetsheet=xwb.getSheetAt(0);for(inti=sheet.getFirstRowNum()+1;i<sheet.getPhysicalNumberOfRows();i++){//解析每行的数据HSSFRowsingleRow=sheet.getRow(i);//解析每个单元格数据singleRow.getCell(0).setCellType(Cell.CELL_TYPE_STRING);StringcellValue=singleRow.getCell(0).getStringCellValue();}

『玖』 Java上传excel,Excel数据或者格式会影响上传速度,Excel哪些因素会影响上传速度

如果只是文件上传,那么上传速度只是与文件大小有关,而与里面的数据是无关的。之所以2000条数据的Excel比3000条数据的Excel上传还慢,应该是你的上传过程除了上传文件,还做了数据解析(读取Excel)的功能,如果是这样的话,那么整个上传速度还与数据内容有关,虽然数据量小,但数据内容多,解析速度慢,这样也会导致你说的问题。如果想解决此问题,可以分步进行,上传时只上传文件,后台接收到文件再统一解析处理。这样既容易查找问题,又可以很好的解耦。

未经允许不得转载:山九号 » java前端传excel文件|java 将页面内容写入excel文件中并可以将其下载到本地任意位置

赞 (0)