java中excel写入,为什么只显示一行?

问题描述

java中excel写入,为什么只显示一行?

public static void main(String[] args) throws Throwable{
int q=0;
String fileName="C:UsersChenDesktop123.xls";//以下是读取一个excel文件
File file=new File(fileName);
Workbook rb=Workbook.getWorkbook(file);
WritableWorkbook wb=Workbook.createWorkbook( new File( "test.xls" ));//以下是生成一个excel文件
WritableSheet new_sheet = wb.createSheet( "sheet" , 0 );
Sheet sheet=rb.getSheet(0);
for(int i=0;i<sheet.getRows();i++){
for(int j=0;j<sheet.getColumns();j++){
Cell cell=sheet.getCell(j,i);
String[] s;
s=cell.getContents().split(";");//作者分列,存储到字符串数组中。
int m=s.length;
System.out.println(m);
if(m==1){
Label label = new Label(0,q++,s[0]);
System.out.println(s[0]);
new_sheet.addCell(label);
wb.write();
}else{
for(int w=0;w<m;w++){
for(int x=w+1;x<m;x++){
Label label = new Label(0,q,s[w]);
System.out.println(s[w]);
new_sheet.addCell(label);
Label label2 = new Label(1,q++,s[x]);
System.out.println(s[x]);
new_sheet.addCell(label2);
wb.write();
}

                 }
             }
         }
     }
     wb.close();
            ![图片说明](http://img.ask.csdn.net/upload/201605/03/1462284278_703096.png)
            初步学习java,请大神指点~~

解决方案

 把wb.write(); 方法从for循环中移除,在wb.close()前面调用就可以了,在里面调用就只写一次。也就只写一条
时间: 2024-08-05 15:22:01

java中excel写入,为什么只显示一行?的相关文章

java中excel数据写入数据库

问题描述 java中excel数据写入数据库 java中excel数据写入数据库 : 通过上传excel同时把里面数据写入数据库.struts框架 源码,急用 解决方案 http://www.cnblogs.com/hongten/archive/2012/02/22/java2poi.html 解决方案二: 需要导入jxl.jar (在网上可以下载,然后放到lib文件夹中) 通过java操作excel表格的工具类库 支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支

excel怎么设置总显示一行数据

  excel怎么设置总显示一行数据 设置第一行总显示步骤1:打开一个excel表格文档. 设置第一行总显示步骤2:切换到"视图"标签,在"窗口"栏,找到"冻结窗格"工具. 设置第一行总显示步骤3:如果想第一行总是显示,那么,选择"冻结首行". 设置第一行总显示步骤4:当你向下拖动滚动条时,第一行的内容总是显示,使人明白,这些单元格里面都是些什么内容. 设置第一行总显示步骤5:同理,如果想第一列总是显示,那么,选择"

查询问题 急急急-查询两个表的数据,然后第一个表的数据存在相同时,则只显示一行,其他的显示为空

问题描述 查询两个表的数据,然后第一个表的数据存在相同时,则只显示一行,其他的显示为空 如上图,第一个表的字段包含 内码.编号.客户.日期,第二个表包含出库单等字段,现在查询出来的数据,只要内码相同,则对应的内码.编号.客户.日期都显示为空,该如何写SQL语句,原SQL语句如下 select t1.内码,t1.编号,t1.客户,t1.日期,t2.出库单 from SEOrder t1 join icstockbill t2 on t1.FInterID=t2.FInterID 解决方案 dani

oracle多行重复去重只显示一行,怎么实现??

问题描述 oracle多行重复去重只显示一行,怎么实现?? 解决方案 select name, max(lttype_id) from table group by name 解决方案二: 嗯 这个语句可以查出来我想要的结果,那order by id 应该加在哪里? 解决方案三: group by name,按name分组,,或者select distinct name 解决方案四: select distinct name from table;按照你的要就,以上就行了

jquery-easyui treegrid 为啥只显示一行 求解释

问题描述 easyui treegrid 为啥只显示一行 求解释 1. html代码: 2. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content=

select-求各位大神看一下,运行时查询结果只显示一行

问题描述 求各位大神看一下,运行时查询结果只显示一行 protected void wbtn_find_Click(object sender, EventArgs e) { string where = ""; string text = Textname.Text; for (int i = 0; i < text.Length; i++) { string ss = text.Substring(0, 1); where += "(District_Name LI

在datagrid中使用radiobutton怎么样只选中一行并知道选中的是哪行?

问题描述 在datagrid中使用radiobutton怎么样只选中一行并知道选中的是哪行?datagrid用的是后台绑定 解决方案 解决方案二:你可以在datagrid加一列checkbox模板列,可以循环datagrid行并判断该行checkbox是否有选中,这样就知道了,

win7电脑中浏览器网页出现“只显示安全内容”提示怎么办?

  上网上网,不管是使用哪个版本的系统,咱们上网都离不开浏览网页这个操作,一般情况下,咱们在win7 64位旗舰版下载电脑中浏览器网页的操作是很简单的,只需要开启浏览器,然后将自己需要查询的网址输入到地址栏中,这样,就可以浏览该网页了,但是最近,却有使用win7旗舰版电脑的用户表示,自己在win7旗舰版电脑中浏览网页的时候出现了问题,网页中出现了"只显示安全内容"的错误提示,那么针对这样的问题咱们要如何解决呢?下面,小编就来详细的介绍一下吧! 1.首先,咱们在win7旗舰版电脑中打开I

java中excel文件生成时,其他用户不能访问application服务器

问题描述 java中生成excel文件(20000条以上数据)时,运行很长时间excel文件也无法生成,此时其他用户也无法进行对服务器的访问.不知道是什么原因请大家帮忙 解决方案 解决方案二:你说的服务器是什么服务器?Tomcat吗?Tomcat是多线程的,如果一个请求访问生成excel理论上其他的请求也是可以处理了,除非服务器cpu被占满了,这就没办法了.另外如果服务器是你自己写的话,就需要通过新建一个线程来处理excel文件生成,保证主服务器在处理excel的同事可以处理其他请求.