java使用jxl读取excel每个数据的方法

最好能给一个完整的,就是上传excel和使用excel两个文件,我要达到的最终效果是通过读取excel文件的数据,通过循环把这些数据存到数据库当中....谢谢各位....可以直接发到我邮箱465139387@qq.com

2个回答

上传excel是fileUpload,然后使用jxl读取excel,最后是持久化,分三个步骤。还是自己动手敲代码。
PS:据说POI在读取excel的效率上高于jxl,建议使用poi读取,jxl写入~~

weixin_42500082
張在御 这些我都知道,我只想要一个完整的实例,网上的都是一个大概,没有完整的.......
接近 8 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java使用jxl读取excel时行数出错

如果是一个新表格的话用sheet.getRows()读取行数没有出错,但是如果删除几行后再次读取发现sheet.getRows()得到的值是之前记录的最大行数,也就是如果上一次是17行,我修改后只有5行但是得到的值还是17 有大佬知道为什么吗(ಥ﹏ಥ),是不是excel文件信息里有什么缓冲没删干净?

关于JAVA用jxl读取Excel出现空指针异常问题

``` public boolean ReadFromExcel(JFrame frame) { List<Student> list = new ArrayList<Student>(); int count = 0 ; int result = 0 ; File file = null ; JFileChooser fileChooser = new JFileChooser(); jxl.Workbook readwb = null; try { fileChooser.setApproveButtonText("确定"); fileChooser.setDialogTitle("打开文件"); result = fileChooser.showOpenDialog(frame); if(result == JFileChooser.APPROVE_OPTION){ file = fileChooser.getSelectedFile() ; }else if(result == JFileChooser.CANCEL_OPTION){ int result1 = JOptionPane.showConfirmDialog(null, "你未选择文件确定要退出吗?","提示", JOptionPane.INFORMATION_MESSAGE); if(result1 == 0){ JOptionPane.showMessageDialog(null, "退出成功","提示", JOptionPane.INFORMATION_MESSAGE); } }else{ JOptionPane.showMessageDialog(null, "操作有误!","警告", JOptionPane.ERROR_MESSAGE); } if(file != null){ System.out.println(file.getPath()); readwb = Workbook.getWorkbook(new FileInputStream(file)); // Sheet的下标是从0开始 Sheet readsheet = readwb.getSheet(0); // 获取第一张Sheet表 int rsColumns = readsheet.getColumns(); // 获取Sheet表中所包含的总列数 int rsRows = readsheet.getRows(); // 获取Sheet表中所包含的总行数 System.out.println(rsColumns+" "+rsRows); for (int i = 1; i < rsRows; i++) { Student stu = new Student(); for (int j = 0; j < rsColumns; j++) { System.out.println(j+" "+i); Cell cell = readsheet.getCell(j, i); // 获取指定单元格的对象引用 System.out.println(cell.getContents()); switch (j) { case 0: stu.setNumber(cell.getContents()); break; case 1: stu.setName(cell.getContents()); break; case 2: // System.out.println(Integer.parseInt(cell.getContents())); stu.setAge(Integer.parseInt(cell.getContents())); break; case 3: stu.setSex(cell.getContents()); break; case 4: stu.setProvince(cell.getContents()); break; case 5: stu.setMajor(cell.getContents()); break; case 6: stu.setPhoneNum(cell.getContents());; break; case 7: stu.setBirthday(cell.getContents()); break; case 8: stu.setHabit(cell.getContents()); break; default: break; } } list.add(stu); System.out.println(stu); readwb.close(); } } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (BiffException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } for(int i = 0 ;i< list.size() ;i++){ // System.out.println("1111"); Student stu1 = list.get(i) ; if(!checkStudent(stu1)){ count++ ; try{ // System.out.println("1111"); add(stu1) ; }catch (Exception e) { e.printStackTrace(); } } } JOptionPane.showMessageDialog(null, "成功读取"+count+"条数据到数据库中","提示", JOptionPane.INFORMATION_MESSAGE); return true ; } ``` 上面代码中,是通过文件选择器来选择文件 ![这个是异常的图片](https://img-ask.csdn.net/upload/201612/11/1481441815_126992.png) ![这个是表的图片](https://img-ask.csdn.net/upload/201612/11/1481441826_895589.png)

jxl 读取EXCEL模板写入数据问题

[code="java"] private void readWriter(){ WritableWorkbook wwb=null; WritableSheet wws=null; FileOutputStream out =null; ByteArrayOutputStream targetFile=null; File is = new File("f:\\ExcelTest\\try.xls"); try { out = new FileOutputStream("f:\\ExcelTest\\try1.xls"); Workbook wb = Workbook.getWorkbook(is); targetFile = new ByteArrayOutputStream(); wwb = Workbook.createWorkbook(targetFile, wb); wws = wwb.createSheet("Sheet名称",0); Label label= new Label(2,0,"单元格内容"); wws.addCell(label); targetFile.writeTo(out); } catch (Exception e) { e.printStackTrace(); } finally{ try { wwb.close(); out.close(); targetFile.close(); } catch (WriteException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } [/code] 为什么我输出excel文件的时候,excel里面什么都,我到底哪里写错了呢

java读取excel使用jxl,只能读取每个sheet页65536行,怎么解决

如题,读取excel时文件有个页有20w+的行数。但是只能读取到65536行 sheet.getRows():65536

关于jxl将Excel中的数据读取到数据库中保存

主要功能如下: 用户点击上传Excel, 上传完了 就直接用Jxl读取到数据库中 本人从未接触过Jxl 没头绪。 希望那个可以把思路告诉我下。 最好是有源代码。 谢谢 邮箱xiayang730@sohu.com :cry:

java操作excel使用jxl如何控制数据行数

java操作excel使用jxl如何控制数据行数,当数据量达到1000条,就新建一个excel,不是新建excel中的sheet表哦!如何实现?文件名称会怎么变化呢?求助!

jxl读取Excel文档如何区分整数和小数?

为了将Excel中的小数位数>3位的数据读完整,我使用了如下图红框中的代码,结果的确能够保留完整的小数,但是同时原本的整数数据后都加了“.0” 问题:如何区分整数和小数,使带小数的数据能保留完整的位数,整数数据后面不要带“.0”? 代码如图:![图片说明](https://img-ask.csdn.net/upload/201701/31/1485795245_812245.png)

java jxl怎么生成excel斜线表头,java jxl怎么生成excel斜线表头

java jxl怎么生成excel斜线表头,java jxl怎么生成excel斜线表头

目前jxl类能否读取Excel2007版本,也就是xlsx后缀

目前jxl类能否读取Excel2007性能版本,也就是xlsx后缀,如果可以,jxl类和poi类的效果怎样,网上太多版本解说了,我只读取小文件excel而已

jxl读取excel的一个搞脑子的问题

前几天被叫去看一个老系统,做好大概几个月了。 <br /> <br />说是excel导入出了问题,有一批数据就是不能导入。而且也是excel格式的,看不出问题。 <br /> <br />然后我过去本机跑了一下,报的不是业务异常,是jxl读文件的异常,如下: <br /> <br /><pre name="code" class="java">jxl.read.biff.BiffException: Unable to recognize OLE stream at jxl.read.biff.CompoundFile.&lt;init&gt;(CompoundFile.java:116) at jxl.read.biff.File.&lt;init&gt;(File.java:127) at jxl.Workbook.getWorkbook(Workbook.java:221) at jxl.Workbook.getWorkbook(Workbook.java:198) </pre> <br /> <br />然后去查了下jxl的源代码,这里抛出的异常。 <br /><pre name="code" class="java">for (int i = 0; i &lt; IDENTIFIER.length; i++) { if (data[i] != IDENTIFIER[i]) { throw new BiffException(BiffException.unrecognizedOLEFile); } } </pre> <br /> <br />说明咱导入的这个excel不是jxl认定的标准OLE file,真是见鬼了。。打开也好好的是excel。怎么就不是标准的OLE file? <br /> <br />接着查这批不能导入的excel到底有什么问题,查来查去后来无意中用ultraEdit打开了一下,结果发现居然不是2进制文件,而是一个网页文件。马上打开另外一个可以导入的xls文件,发现直接出来的是2进制。继续打开前一个不能导入的excel文件仔细查看,结果在选择另存为的时候跳出来是这个样子: <br /><img src="http://photos.album.mop.com/c03/69/6f/72/726f69778f/md_1217185480508.jpg" /> <br />原来发现本质是个网页文件。。 <br /> <br />然后再尝试不加引号保存,发现保存完图标也变了。文件名变成demo.xls.htm  这下基本确定这批excel文件其实都是网页文件,解决办法我就是先让客户全部另存一下,选择ms excel工作簿保存再导入。 <br /> <br />然后客户需求来了,问我为啥要另存一下,不是数据都在的么? <br /> <br />查了半天资料,解决不掉这个囧问题。 总结了下面几点: <br /> <br />1.加引号“demo.xls” 和不加引号保存成网页文件为什么结果不同?如果加了引号但是不加".xls"的话还是保存为网页格式,并不会批个xls的外壳。 <br /> <br />2.jxl没有能力辨别这样的xls文件。。只能抛BiffException。。以后各位兄弟操作excel的时候如果抛了BiffException异常,各位可以看下是不是这个原因。。 <br /> <br />3.有兄弟遇见过这个囧问题么?有啥解决办法么? 去客户那里了解了一下,他们这些excel是让另外一个公司做的,在网页上自动生成下载的,以后让他们一个一个另存估计要骂娘。 <br /> <br /><br /><strong>问题补充</strong><br />要说容错性的话,除了上面碰到的这个情况。其他的抛不能读取的情况我貌似还没见到过。<br /><br />如果上面的类型转换不能通过java来解决的话,只有让用户自己去另存这个唯一的办法了?sigh。。。<br /><br /><br /><br /><strong>问题补充:</strong><br />我囧。。。 <br /> <br />半年前的东西怎么出现到这里来了。。 <br /> <br />最后我是用Lucas Lee的做法解决的,先判断是不是OLE格式,然后如果是的话就走jxl路线,如果不是 就当处理html一样按文本方式读入解决。。很累人。。

java 读取excel文档问题

问题描述: 读取excel文档,文档中含有特殊字符 ``` senz° umbrellas bv ``` 使用base64编译后保存 ``` Base64.encodeBase64(string.getBytes()) ``` 然反编译的时候出错了特殊字符乱码的情况 ``` Base64.decodeBase64("c2VueqHjIHVtYnJlbGxhcyBidg==".getBytes()); ``` 输出结果为 ``` senz�� umbrellas bv ``` 这是为什么?能否正确还原呢?

JXL读取excel时全角空格乱码

开发环境: JDK 1.6 <br />应用服务器:Tomcat 6.0 <br /> <br />当读取cell中的中文全角空格,形如"全角测试 "时,cell中的string="全角测试 ";syso打印出来时"全角测试?" <br />使用重写的trim方法无法trim全角空格。 <br />其中tomcat设置编码为GBK。 <br />请问:有什么方法可以去除掉全角空格,最终得到字符串"全角测试"

小白求帮助 jxl实现excel的修改

实现一个方法,判断表1中 A列第一行的值是否为X,若是则将B列同行的值赋值到表2中C列第一行 依次往下循环 下面是我的思路,求大神帮忙看看如何实现 package com.excelchange; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import jxl.CellType; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; import jxl.write.Label; import jxl.write.WritableCell; import jxl.write.WritableSheet; public class ExcelChange { //workbook=sheet[];sheet=cell[][]; Workbook wb=null; Sheet sheet=null; public Sheet input(String sourcepath,int page) throws BiffException, FileNotFoundException, IOException{ //读取excel到workbook类对象;page=0是第一页 Workbook wb=Workbook.getWorkbook(new FileInputStream(sourcepath)); Sheet st=wb.getSheet(page); return sheet; } public void output(String targetpath,int page,int type) throws BiffException, FileNotFoundException, IOException{ Workbook wb=Workbook.getWorkbook(new FileInputStream(targetpath)); Sheet st=wb.getSheet(page); //输出excel //case switch(type) { case 1: wb.setCell(st,x,y); break; /* case 2:语句2; default:语句; */ } wb.write(); wb.close(); } public int type(Sheet sheet){ //判断表格类型 int type=0; String c=getCell(sheet,2,3,0); //用case判断 switch(c) { case "3602013619200130631":type=1; break; case "123": type =2; break; } return type; } public String getCell(Sheet sheet,int x,int y,int page){ //获取指定单元格内容 Sheet st=wb.getSheet(page); //获取第一个sheet WritableCell cell =((WritableSheet) sheet).getWritableCell(x, y);//获取第一个单元格 String a=cell.toString(); return a; } public void setCell(Sheet sheet,int x,int y){ //设置指定单元格内容 Sheet st=wb.getSheet(0); WritableSheet sheet1 = (WritableSheet) wb.getSheet(0); WritableCell cell1 = sheet1.getWritableCell(x,y); Label l = (Label) cell1; l.setString(getCell(st,x,y,0)); } }

jxl读取设置了数据有效性-序列的excel表

jxl有办法读取设置了数据有效性-序列的excel表中的数据吗?如果有,我该怎么办? 菜鸟一个,想不用数据库读取一些数据,又想录入数据的时候有一些选择性限制 就在excel上设置了数据有效性,但是发现那样的话,读取数据的时候就会报错,我该怎么办?求大神知识。

java程序jxl导出excel内存溢出

困扰了我3天的问题 java程序jxl导出excel内存溢出 在网上找了几个扩大tomcat内存的方法,比如 1.在catalina.bat最前面加入set JAVA_OPTS=-Xms384m -Xmx384m 2.在catalina.sh中echo "Using CATALINA_BASE: $CATALINA_BASE"前面加入JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=512m" 都不好使,下载10000条数据就会报内存溢出,如下: xception report message Handler processing failed; nested exception is java.lang.OutOfMemoryError: Java heap space description The server encountered an internal error that prevented it from fulfilling this request. exception org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.OutOfMemoryError: Java heap space org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:972) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) root cause java.lang.OutOfMemoryError: Java heap space com.roiland.maven.control.management.JlhdExcelController.jlhdGrmdExcel(JlhdExcelController.java:201) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) note The full stack trace of the root cause is available in the Apache Tomcat/7.0.39 logs. 我的代码: @RequestMapping(value = "/jlhdGrmdExcel.do", method = { RequestMethod.GET, RequestMethod.POST }) @RequestMappingAssist(paramType=ParamType.httpType,viewType=ViewType.jspView) public String jlhdGrmdExcel(HttpServletRequest request, HttpServletResponse response) throws Exception { response.setCharacterEncoding("utf-8"); response.setContentType("application/vnd.ms-excel"); Date date = new Date(System.currentTimeMillis()); String param2 = new SimpleDateFormat("yyyyMMdd").format(date).toString(); response.addHeader("Content-Disposition","attachment; filename=\"" + param2 + ".xls" + "\""); // 声明输出流对象 OutputStream os = null; // 实例流对象 os = response.getOutputStream(); // 创建工作簿和sheet表 WritableFont wf2 = new WritableFont(WritableFont.TIMES, 12,WritableFont.NO_BOLD, false); WritableCellFormat wcfF2 = new WritableCellFormat(wf2); // 设置单元格格式 wcfF2.setAlignment(jxl.format.Alignment.CENTRE); wcfF2.setAlignment(jxl.format.Alignment.CENTRE); // 声明工作簿 WritableWorkbook wwb = Workbook.createWorkbook(os); //获取jlhdid int jlhdid = Integer.parseInt(request.getParameter("jlhdid")); //获取jxsdm String jxsdm = request.getParameter("jxsdm"); JlhdGrmd jlhdgrmd = new JlhdGrmd(); //放入参数 jlhdgrmd.setJlhdid(jlhdid); jlhdgrmd.setJxsdm(jxsdm); request.setCharacterEncoding("UTF-8"); //查询符合条件的结果集 List<JlhdGrmd> excelGrmd = new ArrayList<JlhdGrmd>(); excelGrmd = jlhdGrmdMapper.selectJlhdGrmdByJlhdId(jlhdgrmd); if (excelGrmd != null && excelGrmd.size() > 0) { // 设置sheet名称 WritableSheet sheet = wwb.createSheet("个人名单", 0); // 设置列名 /*sheet.addCell(new Label(0, 0, "序号", wcfF2)); sheet.addCell(new Label(1, 0, "经销商代码", wcfF2)); sheet.addCell(new Label(2, 0, "经销商名称", wcfF2)); sheet.addCell(new Label(3, 0, "用户id", wcfF2)); sheet.addCell(new Label(4, 0, "个人代码", wcfF2)); sheet.addCell(new Label(5, 0, "姓名", wcfF2)); sheet.addCell(new Label(6, 0, "银行卡号", wcfF2)); sheet.addCell(new Label(7, 0, "身份证", wcfF2)); sheet.addCell(new Label(8, 0, "职务", wcfF2)); sheet.addCell(new Label(9, 0, "销售台数", wcfF2)); sheet.addCell(new Label(10, 0, "总积分", wcfF2)); sheet.addCell(new Label(11, 0, "总金额", wcfF2)); sheet.addCell(new Label(12, 0, "总所得税", wcfF2)); sheet.addCell(new Label(13, 0, "总支付金额", wcfF2)); sheet.addCell(new Label(14, 0, "是否打款", wcfF2)); sheet.addCell(new Label(15, 0, "打款失败原因", wcfF2)); sheet.addCell(new Label(16, 0, "上传次数", wcfF2)); sheet.addCell(new Label(17, 0, "支付日期", wcfF2)); sheet.addCell(new Label(18, 0, "添加时间", wcfF2)); sheet.addCell(new Label(19, 0, "添加人id", wcfF2));*/ sheet.addCell(new Label(0, 0, "序号", wcfF2)); sheet.addCell(new Label(1, 0, "经销商代码", wcfF2)); sheet.addCell(new Label(2, 0, "经销商名称", wcfF2)); sheet.addCell(new Label(3, 0, "个人代码", wcfF2)); sheet.addCell(new Label(4, 0, "姓名", wcfF2)); sheet.addCell(new Label(5, 0, "银行卡号", wcfF2)); sheet.addCell(new Label(6, 0, "身份证", wcfF2)); sheet.addCell(new Label(7, 0, "职务", wcfF2)); sheet.addCell(new Label(8, 0, "销售台数", wcfF2)); sheet.addCell(new Label(9, 0, "总积分", wcfF2)); sheet.addCell(new Label(10, 0, "总金额", wcfF2)); sheet.addCell(new Label(11, 0, "总所得税", wcfF2)); sheet.addCell(new Label(12, 0, "总支付金额", wcfF2)); sheet.addCell(new Label(13, 0, "是否打款", wcfF2)); sheet.addCell(new Label(14, 0, "打款失败原因", wcfF2)); sheet.addCell(new Label(15, 0, "支付日期", wcfF2)); sheet.addCell(new Label(16, 0, "添加时间", wcfF2)); sheet.addCell(new Label(0, excelGrmd.size() + 2, "合计:", wcfF2)); //合计销售台数 int sumXsts = 0; //合计总积分 double sumZjf = 0; //合计奖励数量 double sumZje = 0; //合计个人所得税 double sumGrsds = 0; //合计总支付金额 double sumZzfje = 0; // 循环输出经销商列表 for (int i = 1; i < excelGrmd.size() + 1; i++) { JlhdGrmd emp = excelGrmd.get(i - 1); //宽度设置 sheet.setColumnView(0, 10); sheet.setColumnView(1, 20); sheet.setColumnView(2, 50); sheet.setColumnView(3, 20); sheet.setColumnView(4, 20); sheet.setColumnView(5, 20); sheet.setColumnView(6, 20); sheet.setColumnView(7, 20); sheet.setColumnView(8, 20); sheet.setColumnView(9, 20); sheet.setColumnView(10, 20); sheet.setColumnView(11, 20); sheet.setColumnView(12, 20); sheet.setColumnView(13, 20); sheet.setColumnView(14, 20); sheet.setColumnView(15, 20); sheet.setColumnView(16, 30); sheet.setColumnView(17, 30); int xsts = 0;//销售台数 double zjf = 0; //总积分 double zje = 0;//总金额 double grsds = 0;//个人所得税 double zzfje = 0;//总支付金额 xsts = emp.getXsts(); try { if(emp.getZjf()!=null && emp.getZjf()!=""){ zjf = Double.parseDouble(emp.getZjf()); } System.err.println("emp.getZje()"+emp.getZje()); if(emp.getZje()!=null && emp.getZje()!=""){ zje = Double.parseDouble(emp.getZje()); } if(emp.getZsds()!=null && emp.getZsds()!=""){ grsds = Double.parseDouble(emp.getZsds()); } if(emp.getZzfje()!=null && emp.getZzfje()!=""){ zzfje = Double.parseDouble(emp.getZzfje()); } } catch (Exception e) { } sheet.addCell(new Label(0, i, i + "", wcfF2)); sheet.addCell(new Label(1, i, emp.getJxsdm(), wcfF2)); sheet.addCell(new Label(2, i, emp.getJxsmc(), wcfF2)); sheet.addCell(new Label(3, i, emp.getGrdm(), wcfF2)); sheet.addCell(new Label(4, i, emp.getGrmc(), wcfF2)); sheet.addCell(new Label(5, i, emp.getYhkh(), wcfF2)); sheet.addCell(new Label(6, i, emp.getSfz(), wcfF2)); sheet.addCell(new Label(7, i, emp.getZw(), wcfF2)); sheet.addCell(new Number(8, i,xsts, wcfF2)); sheet.addCell(new Number(9, i, zjf, wcfF2)); sheet.addCell(new Number(10, i, zje, wcfF2)); sheet.addCell(new Number(11, i, grsds, wcfF2)); sheet.addCell(new Number(12, i,zzfje, wcfF2)); sheet.addCell(new Label(13, i, emp.getIsdk(), wcfF2)); sheet.addCell(new Label(14, i, emp.getDksbyy(), wcfF2)); sheet.addCell(new Label(15, i, emp.getZfrq(), wcfF2)); sheet.addCell(new Label(16, i, emp.getAddtime(), wcfF2)); sumXsts += xsts;//合计销售台数 sumZje += zje;//合计总金额 sumZjf += zjf; //合计总积分 sumGrsds += grsds;//合计总个人所得税 sumZzfje += zzfje; //合计总支付金额 } sheet.addCell(new Number(8, excelGrmd.size() + 2,sumXsts, wcfF2)); sheet.addCell(new Number(9, excelGrmd.size() + 2,sumZjf, wcfF2)); sheet.addCell(new Number(10, excelGrmd.size() + 2,sumZje, wcfF2)); sheet.addCell(new Number(11, excelGrmd.size() + 2,sumGrsds, wcfF2)); sheet.addCell(new Number(12, excelGrmd.size() + 2,sumZzfje, wcfF2)); } wwb.write(); wwb.close(); os.close(); //response.flushBuffer(); return null; } 哪位大侠能帮小弟解决此问题,万分感谢!

java web,利用JXL导出数据为Excel,支持多个sheet导出,求大神快来

**现在要导出大概10万条数据,超出65336,所以想试着改成分页(多个sheet)的形式导出数据,不知道如何实现。自己修改后的代码有问题的。** js调用类中的方法: ``` CreateExcelFile cf = new CreateExcelFile(); cf.WriteExecelNew(rs, filedir + "易混车检索.xls", "易混车检索", colNames, colNames); ``` **旧代码,不支持分页的,只能生成一个sheet**: **CreateExcelFile.java** ``` public void WriteExecelNew(ResultSet rs, String filename, String tilte, String[] colunames, String[] columns) { try { int columncount = columns.length; String sfilename = "c:\\output.xls"; if (filename != null) { if (!filename.equals("")) { sfilename = filename; } } WritableWorkbook workbook = Workbook.createWorkbook(new File( sfilename)); WritableSheet sheet = workbook.createSheet(tilte, 0); sheet.mergeCells(0, 0, columncount - 1, 0);// 合并单元格 WritableFont times16font = new WritableFont(WritableFont.TIMES, 16, WritableFont.BOLD, true); WritableCellFormat times16format = new WritableCellFormat( times16font); times16format.setAlignment(jxl.format.Alignment.CENTRE);// //把水平对齐方式指定为居中 times16format .setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); // 把垂直对齐方式指定为居中 // 标题头 Label label = new Label(0, 0, tilte, times16format); sheet.setRowView(0, 800); sheet.addCell(label); int row = 1; WritableCellFormat titielformat = new WritableCellFormat(); titielformat.setBackground(jxl.format.Colour.GREY_25_PERCENT); titielformat.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN); titielformat.setAlignment(jxl.format.Alignment.CENTRE); titielformat .setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); // 写表头 for (int i = 0; i < columncount; i++) { Label labeltmp = new Label(i, row, colunames[i], titielformat); sheet.addCell(labeltmp); // Number number = new Number(5, 6, 3.1459); // sheet.addCell(number); } row = 2; if (rs != null) { WritableCellFormat tformat = new WritableCellFormat(); tformat.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN); rs.beforeFirst(); while (rs.next()) { for (int i = 0; i < columncount; i++) { Label labeltmp = new Label(i, row, rs.getString(i + 1), tformat); sheet.addCell(labeltmp); } row = row + 1; } } workbook.write(); workbook.close(); } catch (Exception ex) { System.out.println(ex.toString()); } } ``` **尝试修改为支持分页的,但是循环条件写的不对,以及如何判断前一页已经达到65536,开始写入下一页**? ``` public void WriteExecelSheetNew(ResultSet rs, String filename, String tilte, String[] colunames, String[] columns) { try { int columncount = columns.length; String sfilename = "c:\\output.xls"; if (filename != null) { if (!filename.equals("")) { sfilename = filename; } } WritableWorkbook workbook = Workbook.createWorkbook(new File(sfilename)); rs.last(); int reslength = rs.getRow(); //设置每个sheet显示的记录数 int sheetSize = 65536; //有多少个sheet int sheetNum = 1; //计算要创建的sheet个数 if(reslength%sheetSize > 0){ sheetNum = reslength/sheetSize+1; }else{ sheetNum = reslength/sheetSize; } System.out.println("页数:"+sheetNum); for (int i = 0; i < sheetNum; i++) { WritableSheet sheet = workbook.createSheet(tilte+i, i); sheet.mergeCells(0, 0, columncount - 1, 0);// 合并单元格 WritableFont times16font = new WritableFont(WritableFont.TIMES, 16,WritableFont.BOLD, true); WritableCellFormat times16format = new WritableCellFormat(times16font); times16format.setAlignment(jxl.format.Alignment.CENTRE);// //把水平对齐方式指定为居中 times16format.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); // 把垂直对齐方式指定为居中 // 标题头 Label label = new Label(0, 0, tilte, times16format); sheet.setRowView(0, 800); sheet.addCell(label); int row = 1; WritableCellFormat titielformat = new WritableCellFormat(); titielformat.setBackground(jxl.format.Colour.GREY_25_PERCENT); titielformat.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); titielformat.setAlignment(jxl.format.Alignment.CENTRE); titielformat.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); // 写表头 for (int j = 0; j < columncount; j++) { Label labeltmp = new Label(j, row, colunames[j], titielformat); sheet.addCell(labeltmp); } row = 2; if (rs != null) { WritableCellFormat tformat = new WritableCellFormat(); tformat.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN); rs.beforeFirst(); //int count = 0; while (rs.next()) { //count++; for(int k = i*sheetSize;k<i*sheetSize+sheetSize&&k<reslength;k++){ for (int j = 0; j < columncount; j++) { Label labelt = new Label(j, row, rs.getString(j + 1),tformat); sheet.addCell(labelt); } } row = row + 1; } } } workbook.write(); workbook.close(); } catch (Exception ex) { System.out.println(ex.toString()); } } ```

怎样通过JSP页面上传个Excel文件,并实现Java读取EXCEL存入数据库

用的语言是servlet+jsp+mysql和后面两个包commons-fileupload-1.3.1.jar jxl.jar 在线等,有没有会这个代码的大神

java操作excel,用jxl将多个excel文件合并成一个多sheet的excel文件

java操作excel,用jxl将多个excel文件合并成一个多sheet的excel文件有3个list

java读取excel时法文出现乱码

我需要用程序读取excel中的数据,并将其导入到数据库中, 但是excel中出现了如 Der Alpenjäger 中"ä"这样的法文字符,导致用jxl获取值 Workbook rwb = Workbook.getWorkbook(new File(attachmentFilePath), workbookSettings); Sheet sheet = rwb.getSheet(0); Cell[] cell = sheet.getRow(0); String str = cell[0].getContents(); 后得到的是乱码,进而写入mysql也是乱码 我mysql用的编码是utf8,直接在mysql中写入"ä"不会出现问题; 我用Eclipse开发,执行Sql="insert into table (name) values('ä')"也没用问题; 各位大大,帮忙想想办法啦 [b]问题补充:[/b] 以上几位说的我都试过了 还是不行啊 excel是用的什么编码啊? [b]问题补充:[/b] new String(str.getBytes("GBK"),"utf-8") workbookSettings.setEncoding("ISO-8859-1"); 试过了 还是乱码 [b]问题补充:[/b] workbookSettings.setEncoding("ISO-8859-1"); new String(str.getBytes("ISO-8859-1"),"utf-8") 我就是这么设置的 可是不行啊 excel是用的utf-16编码? 难道要new String(str.getBytes("utf-16"),"utf-8") ? [b]问题补充:[/b] 试了无数种编码转换 竟然都不行 wjm251说的方法我再试试

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Linux面试题(2020最新版)

文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的进程间通信方式?Linux 有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什...

将一个接口响应时间从2s优化到 200ms以内的一个案例

一、背景 在开发联调阶段发现一个接口的响应时间特别长,经常超时,囧… 本文讲讲是如何定位到性能瓶颈以及修改的思路,将该接口从 2 s 左右优化到 200ms 以内 。 二、步骤 2.1 定位 定位性能瓶颈有两个思路,一个是通过工具去监控,一个是通过经验去猜想。 2.1.1 工具监控 就工具而言,推荐使用 arthas ,用到的是 trace 命令 具体安装步骤很简单,大家自行研究。 我的使用步骤是...

学历低,无法胜任工作,大佬告诉你应该怎么做

微信上收到一位读者小涛的留言,大致的意思是自己只有高中学历,经过培训后找到了一份工作,但很难胜任,考虑要不要辞职找一份他能力可以胜任的实习工作。下面是他留言的一部分内容: 二哥,我是 2016 年高中毕业的,考上了大学但没去成,主要是因为当时家里经济条件不太允许。 打工了三年后想学一门技术,就去培训了。培训的学校比较垃圾,现在非常后悔没去正规一点的机构培训。 去年 11 月份来北京找到了一份工...

JVM内存结构和Java内存模型别再傻傻分不清了

JVM内存结构和Java内存模型都是面试的热点问题,名字看感觉都差不多,网上有些博客也都把这两个概念混着用,实际上他们之间差别还是挺大的。 通俗点说,JVM内存结构是与JVM的内部存储结构相关,而Java内存模型是与多线程编程相关,本文针对这两个总是被混用的概念展开讲解。 JVM内存结构 JVM构成 说到JVM内存结构,就不会只是说内存结构的5个分区,而是会延展到整个JVM相关的问题,所以先了解下

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Google 与微软的浏览器之争

浏览器再现“神仙打架”。整理 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)从 IE 到 Chrome,再从 Chrome 到 Edge,微软与...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

85后蒋凡:28岁实现财务自由、34岁成为阿里万亿电商帝国双掌门,他的人生底层逻辑是什么?...

蒋凡是何许人也? 2017年12月27日,在入职4年时间里,蒋凡开挂般坐上了淘宝总裁位置。 为此,时任阿里CEO张勇在任命书中力赞: 蒋凡加入阿里,始终保持创业者的冲劲,有敏锐的...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

什么时候跳槽,为什么离职,你想好了么?

都是出来打工的,多为自己着想

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

立即提问
相关内容推荐