jsp excel

合集下载

JS操作Excel大全(带目录)

JS操作Excel大全(带目录)

JS操作Excel大全(带目录)JS操作Excel大全目录JS操作Excel大全 (1)打印接口说明 (1)定义了Excel操作对象 (2)Excle控制相关函数列表 (2)Check (2)CellsFormat (3)InitExcel (3)OpenExcel (4)SaveAsExcel (4)SetPage (5)SetFormat (5)SetMergeCells (7)SetColumnWidth (8)SetRowHeight (8)SetValue (9)SetValueFormatT oString (9)SetValueFormatT oCustom (10)SetBorder (11)SetUserControl (11)ClearExcel (12)QuitExcel (12)PrintPreviewExcel (12)PrintOutExcel (13)打印接口说明expression.PrintOut(From, T o, Copies, Preview, ActivePrinter, PrintT oFile, Collate, PrToFileName)parameter说明:expression必需。

该表达式返回“应用于”列表中的一个对象。

From Variant 类型,可选。

打印的开始页号。

如果省略该参数,将从起始位置开始打印。

To Variant 类型,可选。

打印的终止页号。

如果省略该参数,将打印至最后一页。

Copies Variant 类型,可选。

要打印的份数。

如果省略该参数,将只打印一份。

Preview Variant 类型,可选。

如果该值为True,则Microsoft Excel 打印指定对象之前进行打印预览。

如果该值为False(或者省略此参数),则立即打印该对象。

ActivePrinter Variant 类型,可选。

设置活动打印机的名称。

PrintT oFile Variant 类型,可选。

JSP中导入导出Excel文件

JSP中导入导出Excel文件

JSP中导入导出Excel文件一.POI简介Jakarta POI 是apache的子项目,目标是处理ole2对象。

它提供了一组操纵Windows文档的Java API目前比较成熟的是HSSF接口,处理MS Excel(97-2002)对象。

它不象我们仅仅是用csv生成的没有格式的可以由Excel转换的东西,而是真正的Excel 对象,你可以控制一些属性如sheet,cell等等。

二.HSSF概况HSSF 是sHorrible SpreadSheet Format的缩写,也即“讨厌的电子表格格式”。

也许HSSF的名字有点滑稽,就本质而言它是一个非常严肃、正规的API。

通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。

HSSF 为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件-用户模型”。

前者很好理解,后者比较抽象,但操作效率要高得多。

三.开始编码1 .准备工作要求:JDK 1.4+POI开发包可以到 /dyn/closer.cgi/jakarta/poi/ 最新的POI工具包2 . EXCEL 结构HSSFWorkbook excel 文档对象介绍HSSFSheet excel的表单HSSFRow excel的行HSSFCell excel的格子单元HSSFFont excel字体HSSFName 名称HSSFDataFormat 日期格式HSSFHeader sheet头HSSFFooter sheet尾和这个样式HSSFCellStyle cell样式辅助操作包括HSSFDateUtil 日期HSSFPrintSetup 打印HSSFErrorConstants 错误信息表4 .可参考文档POI 主页:/poi/,初学者如何快速上手使用POI HSSF/poi/hssf/quick-guide.html 。

代码例子/user1/6749/archives/2005/18347.html里面有很多例子代码,可以很方便上手。

Jsp导出excel表

Jsp导出excel表

Jsp导出excel表(POI)对于poi导出excelExcel最多可建立255个工作表,一个工作表中65536行。

当你的数据超过65536行时会报异常,这是一个工作薄的情况下。

那么如何创建多个工作薄的导出呢,以下是我的思路。

1. 求出你所要导出的数据量num(int),T=num/65000(这里可以自定义,但是总的行数必须小于等于65536)并对其取余,如果等于0 ,那么就取T,不等于0则取T+1。

2. 这样做得目的是,每65000条数据,建立一个工作薄代码如下。

3. 代码如下//人员导出//人员导出public ActionForward outMessage3(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response){ HashMap map=new HashMap();map.put("companyid",Constants.getAdmin(request).getCompanyid());int isadmin = Constants.getAdmin(request).getIsadmin();int ismaster = Constants.getAdmin(request).getIsmaster();int creater = Constants.getAdmin(request).getStaffid();int deptid = Constants.getAdmin(request).getDeptid();map.put("deptid", deptid);map.put("creater", creater);map.put("isadmin", isadmin);map.put("ismaster", ismaster);String aid = request.getParameter("aid");String staffid =request.getParameter("staffid");System.out.println("aid: "+aid);if(aid==null||aid==""){aid="0";}else{map.put("areaid", aid);}if(staffid==null||staffid==""){staffid="0";}else{map.put("staffid", staffid);}OutputStream outputStream = null;try {outputStream = response.getOutputStream();} catch (IOException e1) {e1.printStackTrace();}try{Vector<Stock> v = sd.findStaffStock(map);int num = v.size()/500;if(v.size()%500!=0){num=num+1;}HSSFWorkbook workbook = new HSSFWorkbook();System.out.println("v.size(): "+v.size());System.out.println("num: "+num);// FileOutputStream out =null;// out = new FileOutputStream(new File(outputFile("staff")));for(int j=0;j<num;j++){String sheetname="库存详情-"+j;HSSFSheet sheet = workbook.createSheet();System.out.println("sheetname: "+sheetname);workbook.setSheetName(j, sheetname);workbook.setSheetOrder(sheetname, j);HSSFCellStyle cellStyle = workbook.createCellStyle();System.out.println("j: "+j);//设置背景色cellStyle.setFillForegroundColor(HSSFColor.YELLOW.index);cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);HSSFFont font =workbook.createFont();font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);font.setFontName("宋体");font.setFontHeight((short) 200);cellStyle.setFont(font);HSSFRow row = sheet.createRow(0);row.setHeight((short)300);sheet.setDefaultColumnWidth((short)20);for(int i=0;i<workTitle2.length;i++){HSSFCell cell =row.createCell((short)i);cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setCellStyle(cellStyle);cell.setCellValue(workTitle2[i]);}HSSFCellStyle cellStyle2 = workbook.createCellStyle();//设置背景色cellStyle2.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index );cellStyle2.setBorderBottom(HSSFCellStyle.BORDER_THIN);cellStyle2.setBorderLeft(HSSFCellStyle.BORDER_THIN);cellStyle2.setBorderRight(HSSFCellStyle.BORDER_THIN);cellStyle2.setBorderTop(HSSFCellStyle.BORDER_THIN);cellStyle2.setAlignment(HSSFCellStyle.ALIGN_CENTER);cellStyle2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);cellStyle2.setAlignment(HSSFCellStyle.ALIGN_CENTER);if(v!=null&& v.size()>0){response.setContentType("application/x-msdownload");response.setHeader("Content-Disposition","attachment;filename="+outputFile("staff"));response.setContentType("text/html;charset=utf-8");int g =0;if(j*500+500>v.size()){g=v.size();}else{g=j*500+500;}for(int i=j*500,l=0;i<g ;i++,l++){Stock stock =(Stock)v.get(i);HSSFRow rows = sheet.createRow(l+1);HSSFCell cellorder1 = rows.createCell((short)0);cellorder1.setCellStyle(cellStyle2);cellorder1.setCellValue(stock.getUsername());HSSFCell cellorder2 = rows.createCell((short)1);cellorder2.setCellStyle(cellStyle2);cellorder2.setCellValue(stock.getAreaname());HSSFCell cellorder3 = rows.createCell((short)2);cellorder3.setCellStyle(cellStyle2);cellorder3.setCellValue(stock.getProductname());HSSFCell cellorder4 = rows.createCell((short)3);cellorder4.setCellStyle(cellStyle2);cellorder4.setCellValue(stock.getStocks());}}}workbook.write(outputStream);// workbook.write(out);}catch(Exception e){e.printStackTrace();}finally{try {outputStream.flush();} catch (Exception e) {e.printStackTrace();}}return null;}。

在JSP中导出pdf和excel

在JSP中导出pdf和excel

环境配置1 正确安装配置java的jdk2 将ireport放到c:\ireport3 将ant放到c:\ant(我用的是bea的ant路径是D:\bea\weblogic81\server\ant)4 将jasperreports-1.2.0.jar 放置到当前classpath中(没有加,我使用的Ireport\lib下已经存在了)5 将itext-1.3.1.jar放置到c:\ireport\lib(没有加,我使用的Ireport\lib下已经存在了)6 修改ireport\ireport.bat文件,加入以下内容set JAVA_HOME=C:\j2sdk1.4.2set ANT_HOME=D:\bea\weblogic81\server\set IREPORT_HOME=c:\ireport rem %ANT_HOME%\bin\ant javadocs %ANT_HO ME%\bin\ant iReport我修改的是:set JAVA_HOME=C:\j2sdk1.4.2set ANT_HOME=D:\bea\weblogic81\server\set IREPORT_HOME=F:\backup\iReport-1.2.0 rem %ANT_HOME%\bin\ant javadocs %ANT_HOME%\bin\ant iReport(不过对以上修改,感觉没有什么用处)7 提供一个正常提供服务的数据库现在高版本的ireport是不需要进行配置,可以直接使用的.了解制作报表用的包1 jasperreports-1.0.1.jar jasperreports是iReport的核心内容,jsperreport是一个报表制作程序,用它的规则制定一个xml文件,然后编译生成一个.jsper文件,这个.jsper文件是我们真正使用的,它很象.jsp文件,使用的是它编译后的servlet. (http://jasperreports.sou /)2 itext-1.3.1.jar iText是一个开放源码的Java类库,是用来生成PDF文件的。

exceljs的getcell方法

exceljs的getcell方法

exceljs的getcell方法---简介e x ce ljs是一款强大的J av aS cr ipt库,用于处理和操作Ex cel文件。

其中,g et ce ll方法是ex ce lj s库中的核心方法之一,可以用于获取指定单元格的数据。

使用方法要使用g et ce ll方法,首先需要创建一个E xc el工作簿对象,并加载要操作的Ex ce l文件。

然后,可以通过工作簿对象调用g etc e ll方法,传入目标单元格的行索引和列索引作为参数,以获取对应单元格的数据。

下面是g et ce ll方法的基本使用示例:```j av as cr ip t//创建Ex ce l工作簿对象c o ns tw or kb oo k=new E xc el.W or kb oo k();//加载Ex ce l文件a w ai tw or kb oo k.xls x.r ea dF il e('p ath/to/f il e.xl sx');//获取工作表c o ns tw or ks he et=wo r kb oo k.ge tW or ksh e et('Sh ee t1');//获取A1单元格的数据c o ns tc el lA1=wo rks h ee t.ge tC el l(1,1);//输出单元格数据c o ns ol e.lo g(ce l lA1.v al ue);```参数说明g e tc el l方法接受两个参数,分别是行索引和列索引。

行索引从1开始,代表第一行;列索引从1开始,代表第一列。

可以通过指定行索引和列索引来定位目标单元格。

返回值g e tc el l方法返回一个Ce ll对象,该对象包含了目标单元格的数据及其相关属性。

可以通过该对象的va lue属性获取单元格的值。

示例假设我们有一个包含学生成绩的E xc el文件,其中第一列为学生姓名,第二列为语文成绩,第三列为数学成绩。

JS操作EXCEL大全

JS操作EXCEL大全

JS操作EXCEL大全JavaScript 是一种非常流行的编程语言,广泛用于 Web 开发。

虽然JavaScript 不是用来处理 Excel 文件的首选语言,但我们仍然可以使用一些第三方库和 JavaScript 内置的功能来操作 Excel 文件。

在接下来的文章中,我们将介绍一些常见的技术和库,以便在 JavaScript 中操作Excel 文件。

1. 使用 JavaScript 原生 API 操作 Excel 文件:JavaScript 提供了一些用于处理文件的 API,可以使用这些 API 执行一些基本的 Excel 文件操作。

例如,可以使用 FileReader API 读取Excel 文件,然后使用 JavaScript 操作数据。

这种方式主要适用于读取较小的 Excel 文件。

2.使用第三方库:2.1. ExcelJS:ExcelJS 是一个流行的 JavaScript 库,用于在浏览器和 Node.js 中操作 Excel 文件。

它提供了许多用于读取、写入和修改Excel 文件的方法。

您可以使用 ExcelJS 创建、读取和修改 Excel 文件,并进行复杂的数据操作,例如合并单元格、设置单元格样式等。

2.2. xlsx-populate:xlsx-populate 是另一个用于操作 Excel 文件的库,它提供了丰富的 API,使开发人员能够在浏览器和 Node.js 中读取和写入 Excel 文件。

它支持各种 Excel 功能,如图表、公式、数据验证等。

2.3. Excel4Node:Excel4Node 是一个用于操作 Excel 文件的轻量级库。

它使用 Apache POI 库来处理 Excel 文件,并提供了一组简单而强大的 API。

你可以使用 Excel4Node 通过浏览器或 Node.js 读取、写入和修改 Excel 文件。

3. 数据导出为 Excel 格式:你可以使用 JavaScript 将数据导出为 Excel 格式。

js excel复杂表头解析

js excel复杂表头解析

JS Excel复杂表头解析在日常工作中,我们经常会遇到需要处理Excel表格的情况。

而在处理Excel表格时,有时会遇到复杂的表头结构,这给数据的解析和处理带来了一定的困难。

本文将介绍如何使用JavaScript对复杂表头的Excel进行解析,以便更加高效地处理数据。

一、了解复杂表头的结构复杂的表头结构通常由多行、多列的表头单元格组成。

这种结构常常出现在包含多个层级的Excel表格中,每个层级的表头单元格可能会包含多个子表头单元格。

在解析这种复杂结构的表头时,需要先了解表头的整体结构,以便确定数据的位置和格式。

二、使用JavaScript进行表头解析1. 使用第三方库解析复杂表头的一种方式是使用第三方库,如PapaParse、SheetJS 等。

这些库提供了丰富的API和工具,可以方便地对Excel表格进行解析和处理。

通过使用这些库,我们可以快速解析出Excel表格的表头结构,并根据需要进行数据处理和导出。

2. 自定义解析方法除了使用第三方库外,我们也可以自定义解析方法来处理复杂表头的Excel。

我们需要获取Excel表格的数据,并将其转换成JavaScript对象或数组。

根据表头的行列结构,逐步解析出表头的层级关系和位置信息。

根据解析出的表头信息,可以对数据进行处理和操作。

三、处理复杂表头的实际案例我们来看一个实际的案例,假设我们有一个包含多层表头的Excel表格,需要对其中的数据进行处理。

我们可以使用JavaScript将Excel 表格转换成数据对象,然后根据表头的结构,逐步解析出各个表头的位置和层级关系。

根据解析出的表头信息,可以对数据进行筛选、排序、计算等操作。

四、总结通过本文介绍的方法,我们可以更加高效地处理复杂表头的Excel表格。

无论是使用第三方库还是自定义解析方法,都可以根据表头的结构,对数据进行灵活的处理。

希望本文的介绍能够帮助大家更好地理解和应用JavaScript对复杂表头的Excel进行解析,提高工作效率和数据处理质量。

jsp 中poi 实现导入导出excel

jsp 中poi 实现导入导出excel

1.excel导入数据导入时候注意数字类型和字符类型的区别,数字类型要在excel中设置数字类型,对应数据库中也应该建立对应类型<%@ page import="com.guanri.database.*,java.util.*,com.guanri.util.*,com.jspsmart.upload.*" contentType="text/html; charset=GBK" %><%@ pageimport="java.util.*,java.io.*,org.apache.poi.poifs.filesystem.*,ermodel.*" %><jsp:include page="/admin/checkLogin.jsp"/><%String result = "";String contracId = "";String projectname = "";double projectscale = 0;String projecttype="";String projectconunit="";double designtime = 0;String designphase = "";double completedtime = 0;String participants = "";String positionofpro = "";String dutiesas = "";int inum = 0;int unum = 0;int rnum = 0;int snum = 0;String rmstr = "";Table tb = new Table();Vector vc = null;Hashtable rows = new Hashtable();String sql = "";if(request.getMethod().equalsIgnoreCase("POST")) {String sdir = "/download/xlsdir/"; //文件保存目录String filesep=System.getProperty("file.separator");String ssdir = filesep+"download"+filesep+"xlsdir"+filesep;Calendar c = Calendar.getInstance();String fname = c.getTimeInMillis()+".xls";String sfname = sdir + fname;String ss = "xls"; //支持的文件后缀名try{SmartUpload su = new SmartUpload();su.initialize(pageContext);su.setAllowedFilesList(ss);su.upload();com.jspsmart.upload.File file = su.getFiles().getFile(0);if(!file.isMissing()){file.saveAs(sfname);// System.out.println(application.getRealPath("/")+ssdir+fname );FileInputStream finput = new FileInputStream(application.getRealPath("/")+ssdir+fname );//设定FileINputStream读取Excel档POIFSFileSystem fs = new POIFSFileSystem( finput );HSSFWorkbook wb = new HSSFWorkbook(fs);HSSFSheet sheet = wb.getSheetAt(0);//读取第一个工作表,宣告其为sheetfinput.close();HSSFRow row=null;//宣告一列HSSFCell cell=null;//宣告一个储存格short i=0;short y=0;//以巢状迴圈读取所有储存格资料System.out.println("sheet.getLastRowNum()="+sheet.getLastRowNum());for (i=1;i<=sheet.getLastRowNum();i++){row=sheet.getRow(i);for (y=1;y<=row.getLastCellNum();y++){cell=row.getCell(y);switch(y){case 1: //合同号if(cell!=null){contracId=(cell.getStringCellValue()).trim();}break;case 2: //项目名称if(cell!=null){projectname=(cell.getStringCellValue()).trim();}break;case 3: //项目规模if(cell!=null){projectscale=cell.getNumericCellValue();}break;case 4: //项目类型if(cell!=null){projecttype=(cell.getStringCellValue()).trim();}break;case 5: //项目建设单位if(cell!=null){projectconunit=(cell.getStringCellValue()).trim();}break;case 6: //设计时间if(cell!=null){designtime=cell.getNumericCellValue();}break;case 7: //设计阶段if(cell!=null){designphase=(cell.getStringCellValue()).trim();}break;case 8: //竣工时间if(cell!=null){completedtime=cell.getNumericCellValue();}break;case 9: //参与人姓名if(cell!=null){participants=(cell.getStringCellValue()).trim();}break;case 10: //担任项目职务if(cell!=null){positionofpro=(cell.getStringCellValue()).trim();}break;case 11: //担任职责if(cell!=null){dutiesas=(cell.getStringCellValue()).trim();}break;}}sql = "insert into hy_pro_briefinfo(contracId,projectname,projectscale,projecttype,projectconunit,designtime,designphase,completedtime, participants,positionofpro,dutiesas) ";sql+="values('"+contracId+"','"+projectname+"','"+projectscale+"','"+projecttype+"','"+projectconunit+"','"+(int)designti me+"','"+designphase+"','"+(int)completedtime+"','"+participants+"','"+positionofpro+"','"+dutiesas+"')"; //System.out.println(sql);snum = tb.update(sql);if(snum<=0){++rnum;rmstr = rmstr + ",";}else{++inum;}mit();tb.setCommit(true);// System.out.println("result="+result);//System.out.println("snum="+snum +"inum="+inum);}result = "共成功上传"+(inum+unum)+" 条记录,其中新增"+inum+" 条,更新"+unum+" 条;失败"+rnum+" 条("+rmstr+" )";// System.out.println(result);java.io.File f = new java.io.File(application.getRealPath("/")+ssdir+fname);f.delete();}else{result = "上传文件失败";}}catch(Exception ex){ex.printStackTrace();java.io.File f = new java.io.File(application.getRealPath("/")+ssdir+fname);//f.delete();// result = ex.getMessage();if(result.indexOf("1010")>0){result = "文件格式不对!只支持"+ss+"格式文件";}if("You cannot get a numeric value from a String based cell".equals(result)){result = "格式错误:在数字单元格中存在非数字!第"+(unum+inum+1)+"条记录出错";}}//finally{// response.sendRedirect("pro_per_info.jsp");// }}%><jsp:include page="/admin/BodyStart" />Ext.MessageBox.alert("提示",'<%=result %>');setTimeout("window.location.href='pro_per_info.jsp'", 1000);<jsp:include page="/admin/BodyEnd" />2.excel导出数据导出的时候注意中文编码的问题response.reset();response.setContentType("application/vnd.ms-excel");必须按照先后顺序书写<%@ page language="java"import="com.guanri.database.*,java.util.*,com.guanri.util.*,com.jspsmart.upload.*" contentType="text/html; charset=gb2312" pageEncoding="gb2312"%><%@ page import="java.util.*,java.io.*,ermodel.*" %><%//response.setContentType("application/msexcel;charset=utf-8" );//response.setContentType("text/html;charset=utf-8");response.reset();response.setContentType("application/vnd.ms-excel");request.setCharacterEncoding("gb2312");String workSheetName = "pro_info.xls";response.setHeader("Content-disposition", "attachment; filename="+workSheetName);//WriteExcel we=new WriteExcel();//System.out.println("文件生成");//we.getExcel("steet1",response.getOutputStream());HSSFWorkbook workbook = new HSSFWorkbook(); //产生工作簿对象HSSFSheet sheet = workbook.createSheet(); //产生工作表对象sheet.setDefaultRowHeight((short) 10);sheet.setDefaultColumnWidth((short) 20);sheet.setColumnWidth((short) 4, (short) 10000);// 单位workbook.setSheetName(0,"firstSheet");// 设置字体HSSFFont font = workbook.createFont();// font.setFontHeightInPoints(( short ) 20 ); // 字体高度// font.setColor(HSSFFont.COLOR_RED); // 字体颜色font.setFontName( " 黑体" ); // 字体font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL); // 宽度// font.setItalic( true ); // 是否使用斜体// font.setStrikeout(true); // 是否使用划线// 设置单元格类型HSSFCellStyle cellStyle = workbook.createCellStyle();cellStyle.setFont(font);cellStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT); // 水平布局:居左边cellStyle.setWrapText( true );HSSFRow row = sheet.createRow((short)0);//产生第一行HSSFCell cell = row.createCell((short) 0);//产生第一个单元格 cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setEncoding(HSSFCell.ENCODING_UTF_16);cell.setCellValue("本公司项目统计信息");row = sheet.createRow((short) 1);//产生第二行cell = row.createCell((short) 0);//产生第一个单元格cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setEncoding(HSSFCell.ENCODING_UTF_16);cell.setCellValue("序号");cell = row.createCell((short) 1);//产生第二个单元格cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setEncoding(HSSFCell.ENCODING_UTF_16);cell.setCellValue("姓名");cell = row.createCell((short) 2);//产生第二个单元格cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setEncoding(HSSFCell.ENCODING_UTF_16);cell.setCellValue("项目名称");cell = row.createCell((short) 3);//产生第二个单元格cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setEncoding(HSSFCell.ENCODING_UTF_16);cell.setCellValue("项目类型");cell = row.createCell((short) 4);//产生第二个单元格cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setEncoding(HSSFCell.ENCODING_UTF_16);cell.setCellValue("项目规模");cell = row.createCell((short) 5);//产生第二个单元格cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setEncoding(HSSFCell.ENCODING_UTF_16);cell.setCellValue("担任项目职务");cell = row.createCell((short) 6);//产生第二个单元格cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("设计时间");cell = row.createCell((short) 7);//产生第二个单元格 cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("设计阶段");cell = row.createCell((short) 8);//产生第二个单元格 cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("项目建设单位");cell = row.createCell((short) 9);//产生第二个单元格 cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("竣工时间");cell = row.createCell((short) 10);//产生第二个单元格 cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("专项设计");cell = row.createCell((short) 11);//产生第二个单元格 cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("直属专业领导");Table tb = new Table();Vector vc = null;Hashtable rows=new Hashtable();String sql = "";sql = "select * from hy_pro_briefinfo where 1=1"; sql = sql + " order by participants";vc = tb.getContent(sql);// System.out.println(sql);// String result = "";int order=0;String contracId = "";String projectname = "";String projectscale = "";String projecttype="";String projectconunit="";double designtime = 0;String designphase = "";double completedtime = 0;String participants = "";String positionofpro = "";String dutiesas = "";String leader="";int iRow=2;String info="";String pername="";int num=1;for(int i=0;i<vc.size();i++){rows = (Hashtable)vc.get(i);order=i+1;participants=(String)rows.get("participants");if(!pername.equals(participants)){pername=participants;num=1;}else{num++;}// System.out.println("participants="+participants);projectname=(String)rows.get("projectname");projecttype=(String)rows.get("projecttype");// System.out.println("projectname="+projectname);positionofpro=(String)rows.get("positionofpro");// System.out.println("positionofpro="+positionofpro);designtime=((Integer)rows.get("designtime")).intValue();projectscale=(Double)rows.get("projectscale")+"";// System.out.println("designtime="+designtime);designphase=(String)rows.get("designphase");// System.out.println("designphase="+designphase);projectconunit=(String)rows.get("projectconunit");// System.out.println("projectconunit="+projectconunit);completedtime=((Integer)rows.get("completedtime")).intValue(); // System.out.println("completedtime="+completedtime);dutiesas=(String)rows.get("dutiesas");// System.out.println("dutiesas="+dutiesas);row= sheet.createRow((short)iRow);;for(int j=1;j<=11;j++){cell = row.createCell((short)(j-1));cell.setCellStyle(cellStyle); // 设置单元格样式cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setEncoding(HSSFCell.ENCODING_UTF_16);switch(j-1){case 0: //编号info=num+"";break;case 1: //姓名info=participants+"";break;case 2: //项目名称info=projectname+"";break;case 3: //项目类型info=projecttype+"";break;case 4: //面积info="建筑面积:"+projectscale+"平方米";break;case 5: //担任项目职务info=positionofpro+"";break;case 6: //设计时间info=designtime+"";info=info.substring(0,info.indexOf("."));break;case 7: //设计阶段info=designphase+"";break;case 8: //施工单位info=projectconunit+"";break;case 9: //竣工时间info=completedtime+"";info=info.substring(0,info.indexOf("."));if("0".equals(info)){info="";}break;case 10: //专项设计info=dutiesas+"";break; //直属专业领导case 11:info=leader+"";break;}//System.out.println("info="+info);cell.setCellValue(info);}iRow++;}OutputStream output=response.getOutputStream();output.flush();workbook.write(response.getOutputStream());output.close();%>。

exceljs.js的应用实例

exceljs.js的应用实例

在本文中,我将为您介绍ExcelJS.js的应用实例。

ExcelJS.js是一个强大的JavaScript库,用于创建、读取和编辑Excel文件。

它提供了丰富的功能和灵活的API,可以满足各种复杂的Excel操作需求。

通过本文,您将了解ExcelJS.js的基本用法和一些实际的应用案例,希望对您有所帮助。

1. ExcelJS.js简介ExcelJS.js是一个基于JavaScript的Excel处理库,它可以在浏览器和Node.js环境下使用。

通过ExcelJS.js,您可以轻松地创建、读取和修改Excel文件,包括表格、图表、公式、样式等内容。

它支持多种Excel格式,包括xlsx、xls、csv等,同时提供了丰富的API和文档,方便开发者进行定制化的操作。

2. ExcelJS.js的基本用法要使用ExcelJS.js,首先需要安装它的npm包,并在项目中引入相关组件。

您可以使用ExcelJS的API来创建Workbook、Worksheet、Row和Cell等对象,通过这些对象可以进行Excel文件的各种操作。

您可以添加数据到单元格、设置单元格的样式、创建图表等。

ExcelJS.js还支持读取已有的Excel文件,并对其进行修改和保存。

3. 实际应用案例下面,我将介绍一些实际的应用案例,以展示ExcelJS.js的强大功能和灵活性。

案例一:数据导出假设您正在开发一个带有报表导出功能的Web应用,用户可以在页面上选择特定的数据,并导出为Excel文件。

通过ExcelJS.js,您可以将用户选择的数据按照特定的格式导出为Excel文件,并提供下载信息。

这样,用户可以方便地将数据保存为Excel,方便后续分析和处理。

案例二:数据处理假设您需要对大量的数据进行分析和处理,在Excel中手工操作可能会非常耗时。

通过ExcelJS.js,您可以编写脚本来自动化这些操作,比如对数据进行排序、筛选、计算等。

excel javascript api 案例

excel javascript api 案例

Excel JavaScript API 是一个允许开发者使用 JavaScript 编写代码来与 Excel 交互的 API。

以下是一个简单的示例,展示了如何使用 Excel JavaScript API 创建一个工作表,并向其中添加数据。

```javascript// 创建一个新的工作簿var workbook = Excel.run(function(context) {// 创建一个新的工作表var worksheet = workbook.addWorksheet("My Sheet");// 向工作表中添加数据worksheet.getCell("A1").setValue("Hello");worksheet.getCell("B1").setValue("World");// 保存工作簿return workbook.save();});// 等待异步操作完成workbook.onCompleted(function() {console.log("工作簿已保存");});```在这个示例中,我们首先创建了一个新的工作簿,并添加了一个名为 "My Sheet" 的工作表。

然后,我们向单元格 "A1" 和 "B1" 中添加了数据 "Hello" 和 "World"。

最后,我们保存了工作簿并等待异步操作完成。

这只是一个简单的示例,Excel JavaScript API 还提供了许多其他功能,例如读取和写入单元格数据、格式化单元格、创建图表等等。

你可以查阅 Excel JavaScript API 的文档以了解更多信息。

jsp页面显示数据导出到excel表中

jsp页面显示数据导出到excel表中

jsp页面显示数据导出到excel表中发表时间:2007-01-26内容来源:CSDN作者:佚名Excel报表的方法,一个过於简单,一个只能用於window平台(因为使用jdbc-odbc bridge),且无法使用到Excel内部的各种公式或是方法,因此,今天介绍一个apache出的元件叫POI,它可以在UNIX或window平台处理word或Excel档案,而不需要依靠window的com,并且可设定储存格格式、列印格式等等;今天我来介绍其中有关资料读取、新增、修改及删除的功能,若各位网友研究好其他的功能,麻烦Email给我(ljj@.tw),分享给大家!一、需要用的档案:jakarta-poi-1.8.0-dev-20020917.jar几乎每天都有1.8.0的最新版(但非正式版),正式的版本是1.5.0/builds/jakarta-poi/nightly/将档案复制到classpath所指到的地方二、有兴趣的朋友可以参考/poi/三、先建立一个叫做book1.xls的Excel档,内容如下----------------------------------项目单价数量合计CPU7000535000硬碟250025000记忆体160034800----------------------------------其中合计的栏位是设定公式,单价*数量四、资料读取範例<%@ page contentType="text/html;charset=MS950" import="java.util.*,java.io.*" %><%@ page import="org.apache.poi.poifs.filesystem.*,ermodel.*" %><html><head><meta http-equiv="Content-Type" content="text/html; charset=MS950"><title>读取Excel档案</title></head><body><table border="1" width="100%"><%FileInputStream finput = new FileInputStream(application.getRealPath("/")+"book1.xls" );//设定FileINputStream读取Excel档POIFSFileSystem fs = new POIFSFileSystem( finput );HSSFWorkbook wb = new HSSFWorkbook(fs);HSSFSheet sheet = wb.getSheetAt(0);//读取第一个工作表,宣告其为sheetfinput.close();HSSFRow row=null;//宣告一列HSSFCell cell=null;//宣告一个储存格short i=0;short y=0;//以巢状迴圈读取所有储存格资料for (i=0;i<=sheet.getLastRowNum();i++){out.println("<tr>");row=sheet.getRow(i);for (y=0;y<row.getLastCellNum();y++){cell=row.getCell(y);out.print("<td>");//判断储存格的格式switch ( cell.getCellType() ){case HSSFCell.CELL_TYPE_NUMERIC:out.print(cell.getNumericCellValue());//getNumericCellValue()会回传double值,若不希望出现小数点,请自行转型为intbreak;case HSSFCell.CELL_TYPE_STRING:out.print( cell.getStringCellValue());break;case HSSFCell.CELL_TYPE_FORMULA:out.print(cell.getNumericCellValue());//读出公式储存格计算後的值//若要读出公式内容,可用cell.getCellFormula()break;default:out.print( "不明的格式");break;}out.println("</td>");}out.println("</tr>");}%></table></body></html>五、资料新增範例<%@ page contentType="text/html;charset=MS950" import="java.util.*,java.io.*" %><%@ page import="org.apache.poi.poifs.filesystem.*,ermodel.*" %><html><meta http-equiv="Content-Type" content="text/html; charset=MS950"><title>插入资料至Excel档案</title></head><body><%FileInputStream finput = new FileInputStream(application.getRealPath("/")+"book1.xls" ); //设定FileINputStream读取Excel档POIFSFileSystem fs = new POIFSFileSystem( finput );HSSFWorkbook wb = new HSSFWorkbook(fs);HSSFSheet sheet = wb.getSheetAt(0);//读取第一个工作表,宣告其为sheetfinput.close();HSSFRow row=null;//宣告一列HSSFCell cell=null;//宣告一个储存格short i=4;row=sheet.createRow(i);//建立一个新的列,注意是第五列(列及储存格都是从0起算)cell=row.createCell((short)0);cell.setEncoding(HSSFCell.ENCODING_UTF_16);//设定这个储存格的字串要储存双位元cell.setCellValue("显示卡");cell=row.createCell((short)1);cell.setCellValue(1700);cell=row.createCell((short)2);cell.setCellValue(8);cell=row.createCell((short)3);//设定这个储存格为公式储存格,并输入公式cell.setCellFormula("B"+(i+1)+"*C"+(i+1));try{FileOutputStream fout=new FileOutputStream(application.getRealPath("/")+"book1.xls");wb.write(fout);//储存fout.close();out.println("储存成功<a href='book1.xls'>book1.xls</a>");}catch(IOException e){out.println("产生错误,错误讯息:"+e.toString());}%></html>六、资料删除、修改範例<%@ page contentType="text/html;charset=MS950" import="java.util.*,java.io.*" %><%@ page import="org.apache.poi.poifs.filesystem.*,ermodel.*" %><html><head><meta http-equiv="Content-Type" content="text/html; charset=MS950"><title>删除、修改资料至Excel档案</title></head><body><%FileInputStream finput = new FileInputStream(application.getRealPath("/")+"book1.xls" ); //设定FileINputStream读取Excel档POIFSFileSystem fs = new POIFSFileSystem( finput );HSSFWorkbook wb = new HSSFWorkbook(fs);HSSFSheet sheet = wb.getSheetAt(0);//读取第一个工作表,宣告其为sheetfinput.close();HSSFRow row=null;//宣告一列HSSFCell cell=null;//宣告一个储存格row=sheet.getRow((short)4);//取出第五列if (row!=null)sheet.removeRow(row);//先侦测第五列存不存在,若在的话将第五列删除row=sheet.getRow((short)3);//取出第四列cell=row.getCell((short)2);//取出第三个储存格cell.setCellValue(7);//设定该储存格值为7cell=row.getCell((short)3);cell.setCellFormula(cell.getCellFormula());//上两行为取出公式储存格,并重新计算(因为刚才更新过计算公式的值)//如果不做,公式计算後的值不会更新try{FileOutputStream fout=new FileOutputStream(application.getRealPath("/")+"book1.xls");wb.write(fout);//储存fout.close();out.println("储存成功<a href='book1.xls'>book1.xls</a>");}catch(IOException e){out.println("产生错误,错误讯息:"+e.toString());}%></body></html>/gqm1982/archive/2007/01/25/1493229.aspx本篇文章来源于站长资讯网原文链接:/0701/jsp-116977784110490.html。

js 解析 excel 复制

js 解析 excel 复制

js 解析excel 复制摘要:1.解析JavaScript 在Excel 中的应用2.了解Excel 中的复制操作3.实现JavaScript 解析Excel 文件并复制内容的方法正文:在现代办公场景中,Excel 作为一款功能强大的电子表格软件,广泛应用于数据处理、分析和展示。

而JavaScript 作为一种常见的编程语言,能够实现对Excel 文件的操作,从而简化数据处理流程。

本文将介绍如何使用JavaScript 解析Excel 文件并实现复制操作。

首先,我们需要了解JavaScript 在Excel 中的应用。

实际上,Excel 提供了一个JavaScript API,允许开发者使用JavaScript 语言编写自定义功能,并在Excel 中运行。

这为实现Excel 文件的解析和操作提供了便利。

接下来,我们来了解Excel 中的复制操作。

在Excel 中,复制操作通常有以下几种方式:1.使用“复制”和“粘贴”功能键。

2.选中需要复制的单元格或区域,然后右键点击,选择“复制”。

3.使用快捷键Ctrl+C(Windows 系统)或Cmd+C(Mac 系统)复制选中的单元格或区域。

现在,我们来探讨如何实现JavaScript 解析Excel 文件并复制内容的方法。

这里以使用JavaScript 库“xlsx”为例,首先需要安装该库,可以通过npm 进行安装:```pm install xlsx```安装完成后,可以使用以下代码实现解析Excel 文件并复制内容:```javascriptconst XLSX = require("xlsx");// 读取Excel 文件const workbook = XLSX.readFile("example.xlsx");// 获取第一个工作表const sheetName = workbook.SheetNames[0];const worksheet = workbook.Sheets[sheetName];// 定义复制函数function copyExcelContent(range, destination) {// 获取选中区域的地址const address = XLSX.utils.encode_range(range);// 复制选中区域到目的地XLSX.utils.book_append_sheet(workbook, destination, address);}// 示例:复制A1 单元格的内容到B1 单元格const range = { s: { r: 0, e: 0 } }; // 选中A1 单元格const destination = { s: { r: 0, e: 0 } }; // 目标位置B1 单元格copyExcelContent(range, destination);// 将更改写回文件XLSX.writeFile(workbook, "example_modified.xlsx");```通过以上代码,我们可以实现使用JavaScript 解析Excel 文件并复制内容。

exceljs 常用方法

exceljs 常用方法

exceljs 常用方法ExcelJS是一个用于读写Excel文件的JavaScript库。

它提供了许多常用的方法,可以方便地对Excel文件进行操作和处理。

下面将介绍一些常用的ExcelJS方法。

1. 创建工作簿使用ExcelJS,可以通过以下代码创建一个新的工作簿:```javascriptconst ExcelJS = require('exceljs');const workbook = new ExcelJS.Workbook();```这样就创建了一个空的工作簿。

2. 添加工作表可以使用以下代码向工作簿添加一个新的工作表:```javascriptconst worksheet = workbook.addWorksheet('Sheet1');```这样就向工作簿添加了一个名为"Sheet1"的工作表。

3. 添加数据可以使用以下代码向工作表添加数据:```javascriptworksheet.getCell('A1').value = 'Hello';worksheet.getCell('B1').value = 'World';```这样就向工作表的A1单元格和B1单元格分别添加了"Hello"和"World"。

4. 格式设置ExcelJS提供了丰富的格式设置功能,可以对单元格进行样式、字体、对齐方式等设置。

例如,可以使用以下代码设置单元格的背景颜色和字体颜色:```javascriptconst cell = worksheet.getCell('A1');cell.fill = {type: 'pattern',pattern: 'solid',fgColor: { argb: 'FFFF0000' }};cell.font = {color: { argb: 'FFFFFFFF' }};```这样就将A1单元格的背景颜色设置为红色,字体颜色设置为白色。

jsp生成复杂数据格式Excel文件

jsp生成复杂数据格式Excel文件
Instance();
Date date = c.getTime();
WritableCellFormat cf1 = new WritableCellFormat(DateFormats.FORMAT1);
DateTime dt = new DateTime(4,1,date,cf1);
WritableFont bold = new WritableFont(WritableFont.ARIAL,10,WritableFont.BOLD);//设置字体种类和黑体显示,字体为Arial,字号大小为10,采用黑体显示
WritableCellFormat titleFormate = new WritableCellFormat(bold);//生成一个单元格样式控制对象
WritableCellFormat boldDateFormate = new WritableCellFormat(boldDate,DateFormats.FORMAT1);
Calendar c = Calendar.getInstance();
Date date = c.getTime();
sheet.addCell(number); //整形数据
Number ints = new Number(2,1,15042699);
sheet.addCell(ints);
Boolean bools = new Boolean(3,1,true);
sheet.addCell(bools); //日期型数据
sheet.addCell(dt); //把创建的内容写入到输出流中,并关闭输出流 workbook.write();
workbook.close();
os.close();

Jsp中Excel文件的导入

Jsp中Excel文件的导入
9.// }
10.// });
11.
12.// 基本的读取
13.// 操作第一张表格
14.Sheet s = workBook.getSheet(0);
15.// 设置 row、cell
16.String[] row;
17.String cell;
18.// 循环输出表格内容
19.for (int i = s.getFirstRow(); i < s.getLastRow(); i++) {
System.out.print(cell.getContents()+" ");
}
System.out.println();
}
//利用已经创建的Excel工作薄创建新的可写入的Excel工作薄
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File("D://Book2.xls"),rwb);
26.}
27.// 关闭连接
workBook.close();
Java code
try { Class.forName("oracle.jdbc.OracleDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } String url="*****"; String user="*****"; String password="******"; try { conn = DriverManager.getConnection(url,user,password); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { state = conn.createStatement(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } Workbook workbook = Workbook.getWorkbook(new File("C:/bjdmb.xls")); Sheet sheet = workbook.getSheet(0); int rows=sheet.getRows(); for(int i=1;i <rows;i++){ id="03"+sheet.getCell(1,i).getContents(); email=sheet.getCell(2,i).getContents(); sql="UPDATE id_accountdep SET reserved1='"+id+"' where depname= '"+email+"'"; state.executeUpdate(sql); System.out.println(sql); }

JS操作EXCEL大全

JS操作EXCEL大全

JS操作EXCEL大全一、读取Excel文件读取Excel文件是进行Excel操作的基础。

在JavaScript中,我们可以使用一些库来读取Excel文件,例如xlsx、xlsjs和exceljs等。

1. 使用xlsx库读取Excel文件xlsx是一个用于处理Excel文件的JavaScript库。

您可以通过以下步骤使用xlsx库来读取Excel文件:首先,将xlsx库导入到您的项目中。

您可以使用npm来安装xlsx库,并在代码中引入该库:```npm install xlsxconst XLSX = require('xlsx');```然后,使用XLSX.readFile方法读取Excel文件:```const workbook = XLSX.readFile('example.xlsx');```最后,可以通过workbook.Sheets对象获取Excel文件的内容:```const worksheet = workbook.Sheets['Sheet1'];console.log(XLSX.utils.sheet_to_json(worksheet));```2. 使用xlsjs库读取Excel文件xlsjs是另一个用于读取Excel文件的JavaScript库。

您可以使用以下步骤使用xlsjs库来读取Excel文件:首先,将xlsjs库导入到您的项目中。

您可以使用npm来安装xlsjs 库,并在代码中引入该库:```npm install xlsjsconst XLSX = require('xlsjs');```然后,使用XLSX.readFile方法读取Excel文件:```const workbook = XLSX.readFile('example.xls');```最后,可以通过workbook.Sheets对象获取Excel文件的内容:```const worksheet = workbook.Sheets['Sheet1'];console.log(XLSX.utils.sheet_to_json(worksheet));```二、写入Excel文件在读取Excel文件之后,我们还可以使用JavaScript来写入Excel 文件。

jsp实现下载excel,word,pdf,jgp,gif,xml,js过滤器实现文档

jsp实现下载excel,word,pdf,jgp,gif,xml,js过滤器实现文档

下面代码有选择的粘贴进自己项目即可,其实现解决了tomcat、resin服务器中文下载乱码问题。

web.xml配置如下<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><filter><filter-name>downLoad</filter-name><filter-class>com.tangdi.DownLoadFilter</filter-class></filter><filter-mapping><filter-name>downLoad</filter-name><url-pattern>*.downLoad</url-pattern></filter-mapping></web-app>Jsp页面配置如下其下载利用a标签进行连接,前提是服务器上下载文件路径已知需要引进el表达式和jquery.<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><%@ taglib uri="/jsp/jstl/core" prefix="c"%><script src="${pageContext.request.contextPath}/js/jquery-1.4.4.min.js" type="text/javascript"></script><html><head><script>$(function(){var$href='${pageContext.request.contextPath}'+"/20159.downLoad?filePath=";//+encodeURICompo nent("中国.downLoad");$("#testHref").children("td").each(function(){var $id=$(this).children(":first").attr("id");var $tmpHref="";if($id=="txt"){$tmpHref=$href+"E:/apache-tomcat-6.0.35/apache-tomcat-6.0.35/webapps/MyTry/test/"+"203123 4_这是txt.txt";}else if($id=="pdf"){$tmpHref=$href+"E:/apache-tomcat-6.0.35/apache-tomcat-6.0.35/webapps/MyTry/test/"+"这是pdf.pdf";}else if($id=="excel"){$tmpHref=$href+"这是excel.xls";}else if($id=="word"){$tmpHref=encodeURI($href+"这是doc.doc","ISO8859-1");}else if($id=="jpg"){$tmpHref=$href+"这是jpg.jpg";}else if($id=="js"){$tmpHref=$href+"这是js.js";}else if($id=="jsp"){$tmpHref=$href+"这是jsp.jsp";}else if($id=="html"){$tmpHref=$href+"这是html.html";}$(this).children(":first").attr("href",$tmpHref);});});</script></head><body><div><table><tr id="testHref"><td><a id="txt" href="#">txt</a></td><td><a id="pdf" href="#">pdf</a></td><td><a id="excel" href="#">excel</a></td><td><a id="word" href="#">word</a></td><td><a id="xml" href="#">xml</a></td><td><a id="jpg" href="#">jpg</a></td><td><a id="gif" href="#">gif</a></td><td><a id="js" href="#">js</a></td><td><a id="jsp" href="#">jsp</a></td><td><a id="html" href="#">html</a></td></tr></table></div></body></html>过滤器filter配置如下package com.tangdi;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import .URLDecoder;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class DownLoadFilter implements Filter {public void destroy() {}public void doFilter(ServletRequest request1, ServletResponse response1,FilterChain arg2) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) request1;HttpServletResponse response = (HttpServletResponse) response1;//request.setCharacterEncoding("UTF-8");//String filePath = new String(request.getParameter("filePath").getBytes("ISO8859-1"), "UTF-8");request.setCharacterEncoding("ISO8859-1");String filePath = new String(request.getParameter("filePath").getBytes("ISO8859-1"),"UTF-8");System.out.println("*****************************************************filePat h is :" + filePath);String suffix = filePath.substring(stIndexOf(".") + 1);System.out.println("********************suffix is:"+suffix);String contentType = getContentType(suffix);//获得尾缀设置不同contentTypeString contentDisposition = "attachment; filename="+new String(filePath.substring(stIndexOf("_")+1));System.out.println("********************************************"+contentDisposit ion);response.setCharacterEncoding("ISO8859-1");response.setContentType(contentType);response.setHeader("Content-disposition", new String(contentDisposition.getBytes("UTF-8"),"ISO8859-1"));try {InputStream is = new FileInputStream(filePath);OutputStream os = response.getOutputStream();int byteRead;byte[] buffer = new byte[1024];while ((byteRead = is.read(buffer)) != -1) {os.write(buffer, 0, byteRead);}os.flush();os.close();} catch (Exception e) {e.printStackTrace();}}/**** @param suffix 下载文件尾缀* @return 返回不同response.contentType*/public String getContentType(String suffix) {if (suffix.equals("txt")) {return "text/plain";} else if(suffix.equals("doc") || suffix.equals("docx")) {return "application/msword;charset=gb2312";} else if(suffix.equals("xls") || suffix.equals("xlsx")) {return "application/-excel";} else if(suffix.equals("pdf")) {return "application/pdf";}else if(suffix.equals("gif")){return "image/gif" ;}else if(suffix.equals("jpg")){return "image/jpeg" ;}else if(suffix.equals("htm")||suffix.equals("html")||suffix.equals("jsp")){return "text/html" ;}else if(suffix.equals("xml")){return "text/xml" ;}else if(suffix.equals("js")){return "application/x-javascript" ;}return "application/octet-stream";}public void init(FilterConfig config) throws ServletException {}}注:其中编码ISO8859-1不能乱改,否则出现解析路径错误或者下载文件出错。

js引用本地excel数据 -回复

js引用本地excel数据 -回复

js引用本地excel数据-回复在JavaScript中引用本地Excel数据可能是许多开发人员经常遇到的问题之一。

本文将详细介绍如何使用JavaScript来读取本地的Excel文件并将其用于Web开发中。

在开始之前,我们需要明确一些前提条件。

首先,我们需要一个Excel文件,其中包含我们要引用的数据。

其次,我们需要一个用于处理Excel文件的JavaScript库。

有许多JavaScript库可以处理Excel文件,但我们将使用最流行和常用的库之一- SheetJS。

SheetJS是一个强大的库,可以读取和写入Excel 文件。

它不需要任何服务器端组件,完全在客户端执行。

首先,我们需要在项目中引入SheetJS库。

可以通过使用CDN(内容分发网络)或将库下载到本地来实现。

以下是用于引入SheetJS的CDN代码:<script src="现在,我们可以开始使用SheetJS库来读取本地的Excel文件。

下面是一步一步的说明:第一步:创建文件输入元素我们需要在HTML中创建一个文件输入元素,允许用户选择Excel文件。

可以使用以下代码创建文件输入元素:<input type="file" id="excelFile" />第二步:处理文件选择事件当用户选择Excel文件时,我们需要捕获该事件,并在事件处理程序中执行相应的操作。

可以使用以下代码来处理文件选择事件:document.getElementById('excelFile').addEventListener('change', handleFile, false);function handleFile(e) {获取选择的Excel文件var file = e.target.files[0];创建文件读取器var reader = new FileReader();设置读取完成后的回调函数reader.onload = function(e) {var data = new Uint8Array(e.target.result);var workbook = XLSX.read(data, {type: 'array'});处理Excel数据processExcel(workbook);};读取Excel文件reader.readAsArrayBuffer(file);}以上代码中的`handleFile()`函数将监听文件选择事件,并在文件读取完成后执行回调函数。

如何将jsp页面直接显示为excel或者word格式

如何将jsp页面直接显示为excel或者word格式

如何将jsp页面直接显示为excel或者word格式用Jsp生成Word或Excel文件的步骤:1.先用Word或Excel做一个模板文件,然后另存为网页html格式。

然后把扩展名改成.jsp的。

2.在这个改名后的jsp页面代码最顶上加上代码:如果是生成Excel就加:<%@page language="java" contentType="application/msexcel;charset=gb2312"%> 如果生成Word就加:<%@page language="java" contentType="application/msword;charset=gb2312"%>3. 继续在上面的代码后面添加(指定当生成并下载文档时,要显示的默认文件名):生成Excel就加:<%String fileName="我的文件名.xls";String sn = new String(fileName.getBytes("gb2312"),"ISO8859-1");response.setHeader("Content-Disposition","attachment; filename="+sn);%>生成Word就加:<%String fileName="我的文件名.doc";String sn = new String(fileName.getBytes("gb2312"),"ISO8859-1");response.setHeader("Content-Disposition","attachment; filename="+sn);%>最后,根据需要,就像编辑jsp页面一样,在这个文件的正文内容中输出你要输出的数据内容。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
}
/**
* 拷贝后,进行修改,其中file1为被copy对象,file2为修改后创建的对象
* 尽单元格原有的格式化修饰是不能去掉的,我们还是可以将新的单元格修饰加上去,
* 以使单元格的内容以不同的形式表现
File image = new File("f:\2.png");
WritableImage wimage = new WritableImage(0,1,2,2,image);//0,1分别代表x,y.2,2代表宽和高占的单元格数
ws.addImage(wimage);
WritableCellFormat wcfFC = new WritableCellFormat(wfc);
Label labelCF = new Label(1,0,"This is a Label Cell",wcfFC);
ws.addCell(labelCF);
Label label = new Label(0,0,"this is a label test");
ws.addCell(label);
//添加带有字型Formatting对象
WritableFont wf = new WritableFont(WritableFont.TIMES,18,WritableFont.BOLD,true);
----------------------------------------------------------------------------------
Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该 API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、 Servlet来调用API实现对Excel数据表的访问。
ws.addCell(labelNF);
//3.添加Boolean对象
Boolean labelB = new jxl.write.Boolean(0,2,false);
ws.addCell(labelB);
//获得cell具体类型值的方式
if(c00.getType() == BEL)
{
LabelCell labelc00 = (LabelCell)c00;
* 修改已经存在的数据表;
* 能够读取图表信息
1.应用示例:
包括从Excel读取数据,生成新的Excel,以及修改Excel
package common.util;
import jxl.*;
import jxl.format.UnderlineStyle;
{
InputStream is = new FileInputStream(filePath);
Workbook rwb = Workbook.getWorkbook(is);
//Sheet st = rwb.getSheet("0")这里有两种方法获取sheet表,1为名字,而为下标,从0开始
//添加带有formatting的DateFormat对象
DateFormat df = new DateFormat("dd MM yyyy hh:mm:ss");
WritableCellFormat wcfDF = new WritableCellFormat(df);
//添加带有字体颜色的Formatting对象
WritableFont wfc = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,
UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);
* Date: 2005-7-17
* Time: 9:33:22
* To change this template use File | Settings | File Templates.
*/
public class ExcelHandle
{
public ExcelHandle()
//4.添加DateTime对象
jxl.write.DateTime labelDT = new jxl.write.DateTime(0,3,new java.util.Date());
ws.addCell(labelDT);
*/
public static void writeExcel(OutputStream os)
{
try
{
/**
* 只能通过API提供的工厂方法来创建Workbook,而不能使用WritableWorkbook的构造函数,
NumberFormat nf = new NumberFormat("#.##");
WritableCellFormat wcfN = new WritableCellFormat(nf);
Number labelNF = new jxl.write.Number(1,1,3.1415926,wcfN);
* 因为类WritableWorkbook的构造函数为protected类型
* method(1)直接从目标文件中读取
WritableWorkbook wwb = Workbook.createWorkbook(new File(targetfile));
* method(2)如下实例所示 将WritableWorkbook直接写入到输出流
*/
WritableWorkbook wwb = Workbook.createWorkbook(os);
//创建Excel工作表 指定名称和位置
WritableCellFormat wcf = new WritableCellFormat(wf);
Label labelcf = new Label(1,0,"this is a label test",wcf);
ws.addCell(labelcf);
提供以下功能:
* 从Excel 95、97、2000等格式的文件中读取数据;
* 读取Excel公式(可以读取Excel 97以后的公式);
* 生成Excel数据表(格式为Excel 97);
* 支持字体、数字、日期的格式化;
* 支持单元格的阴影操作,以及颜色操作;
Sheet st = rwb.getSheet("original");
Cell c00 = st.getCell(0,0);
//通用的获取cell值的方式,返回字符串
String strc00 = c00.getContents();
//写入工作表
wwb.write();
wwb.close();
}
catch(Exception e)
{
e.printStackTrace();
strc00 = labelc00.getString();
}
//输出
System.out.println(strc00);
//关闭
rwb.close();
import jxl.write.*;
import jxl.write.Number;
import jxl.write.Boolean;
import java.io.*;
/**
* Created by IntelliJ IDEA.
* User: xl
* @param file1
//2.添加Number对象
Number labelN = new Number(0,1,3.1415926);
ws.addCell(labelN);
//添加带有formatting的Number对象
{
}
/**
* 读取Excel
*
* @param h
*/
public static void readExcel(String filePath)
{
try
}
catch(Exception e)
{
e.printStackTrace();
}
}
/**
* 输出Excel
*
* @param os
WritableSheet ws = wwb.createSheet("Test Sheet 1",0);
//**************往工作表中添加数据*****************
//1.添加Label对象
DateTime labelDTF = new DateTime(1,3,new java.util.Date(),wcfDF);
ws.addCell(labelDTF);
//添加图片对象,jxl只支持png格式图片
相关文档
最新文档