看下面java代码,有关Java与Excel的问题,盼高手解答!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了看下面java代码,有关Java与Excel的问题,盼高手解答!!!相关的知识,希望对你有一定的参考价值。

改变“row = sheet.createRow(0)”里括号里的值,多次运行为什么只能往workbook.xls插入一条数据?怎样插入多条数据?
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import org.apache.poi.hslf.model.Sheet;
import org.apache.poi.hssf.model.Workbook;
import org.apache.poi.hssf.record.formula.functions.Row;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class Aa

public static void main(String[] args)
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
HSSFRow row = sheet.createRow(0);
row.createCell((short) 0).setCellValue(0);
row.createCell((short) 1).setCellValue(1);
row.createCell((short) 2).setCellValue(2);
row.createCell((short) 3).setCellValue("value");
row.createCell((short) 4).setCellValue(true);
row.createCell((short) 5).setCellType(HSSFCell.CELL_TYPE_ERROR);

// Write the output to a file
FileOutputStream fileOut;

try
fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
catch (Exception e)
// TODO Auto-generated catch block
e.printStackTrace();




public class ClientUI extends JPanel
/**
*
* @param title 要写的文件的表头
* @param datas 要写入的文件内容 (是一个数据的集合)
* @param path 要写入文件的路径
* @throws Exception
*/
private void writeToXls(String[] title,List<Object[]> datas,String path) throws Exception

OutputStream fos = null;
try
File f = new File(path);
fos = new FileOutputStream(f);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
HSSFRow titlerow=sheet.getRow(0);
for (short i = 0; i < title.length; i++)
HSSFCell cell=titlerow.createCell(i);
cell.setCellValue(title[i]);

for (int i = 0; i < datas.size(); i++)
HSSFRow row=sheet.createRow(i+1);
Object[] obj=datas.get(i);
for (short j = 0; j < obj.length; j++)
HSSFCell cell=row.createCell(j);
cell.setCellValue(obj[j].toString());


wb.write(fos);
System.out.println("写入完毕………………");
catch (Exception e)
e.printStackTrace();
throw e;
finally
if (fos != null)
fos.flush();
fos.close();







想写什么写什么,想写多少写多少
参考技术A HSSFRow row = sheet.createRow(0);
row.createCell((short) 0).setCellValue(0);

createRow(0); 是建立一行啊
createCell((short) 0)是创建那一行里的一个单元格啊
setCellValue(0); 是往那个单元格里填充数据啊

用for循环 循环
HSSFRow row = sheet.createRow(0); 这一句就会有好多行被创建了啊
在用for循环 循环row.createCell((short) 0).setCellValue(0); 这一句
就填满数据了啊
for循环会吧 ,不会就莫法了
参考技术B HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
你每次运行都重新创建这个表,把原来的数据抛弃了
然后又写一行数据进去。。所以最后还是一行数据
参考技术C 是什么问题?org.apache.poi.hssf.这个要能有才可以. 参考技术D mrcloud 你说的不错,怎么解决啊,解决了分就给你了,谢谢!!!
ps:我是提问者

java注解学习笔记

今天看了下有关java注解的视频学习资料在。做点笔记:

学java注解的目的:

能看别人代码,特别是框架代码。由于肯定与注解有关。

编程更简洁,代码清晰。


java注解是java1.5引入的:注解概念是java提供的一种原程序中的元素关联不论什么信息和元数据的途径和方法。


常见注解(编译时注解);

@override:方法覆盖了它的父类的方法

@Deprecated:这个凝视是一个标记凝视。

所谓标记凝视。就是在源程序中增加这个标记后,并不影响程序的编译。但有时编译器会显示一些警告信息。

或者在方法名上加一横线,意思是建议不使用

@SuppressWarnings(""):对代码中变量或方法的警告提示,也是想告诉该方法存在潜在风险等。

注解分类:

依照执行机制分类:

1,源代码注解:注解仅仅在源代码中存在 ,编译成.class文件就不存在了。

2,编译时注解:在源代码和.class中都存在

3。执行时注解:在执行阶段才会起作用的注解,甚至会影响执行逻辑的注解。

依照来源分类:

1。来自JDK的注解:

2。来自第三方的注解:

3。我们自定义的注解:

另外一类叫元注解:对注解的注解。

常见第三方注解:

Spring中的@Autowired   @Service    @Repository等

Mybatis中的@InsertProvider   @UpdateProvider   @Options等

自己定义注解:

以@interface +注解名

如定论了一个名为Description注解:

@Target({ ElementType.METHOD, ElementType.TYPE })   //@Targe指注解的作用域,包含METHOD方法声明,TYPE类接口,PARAMETER參数声明。PACKAGE包声明,LOCAL_VARIABLE局部变量声明,FIELD字段声明及CONSTRUCTOR构造方法声明
@Retention(RetentionPolicy.RUNTIME)   //@Retenion指生命周期:1。源代码注解:注解仅仅在源代码中存在 。编译成.class文件就不存在了。2,编译时注解:在源代码和.class中都存在3,执行时注解:在执行阶段才会起作用的注解,甚至会影响执行逻辑的注解。
@Inherited //@Inherited指同意子类继承
@Documented//@Documented生成java doc时包括注解信息
//以上4行为元注解
public @interface Description {

/*注解中的成员类型是受限制的:合法的类(int double等)包含原始类型及String,Class,Annotation,Enumeration等
* 假设注解仅仅有一个成员。则成员名必须取名为value(),在使用注解时能够忽略成员名和赋值符号(=)
* 注解类能够没有成员。没有成员的注解称为标识注解****/
String desc();//注解中的成员(成员变量)以无參无异常方式声明
String author();
int age() default 18;//能够用default为成员指定一个默认值
}
以下是一个对注解进行操作的小样例:

@Description(author = "child", desc = "在Child上的类注解")    //使用注解:使用注解语法 :@<注解名>(成员名1=值1,成员名2=值2.....)多个成员用逗号分隔,依据@Target指定的使用范围来使用
public class Child{


@Description(author = "ldm", desc = "在Child的name()方法注解")
public String name() {
// TODO Auto-generated method stub
return null;
}
@Description(author = "child", desc = "Child中number()方法注解")
public String number() {
return "100";
}
}

public static void main(String[] args) {
// 首先使用类载入器载入类
try {
Class c = Class.forName("com.ldm.test.Child");
// 找到类上面的注解
boolean isExist = c.isAnnotationPresent(Description.class);// 推断注解是否存在
if (isExist) {
// 拿到注解实例
Description d = (Description) c.getAnnotation(Description.class);
System.out.println(d.desc());
}
//找到方法上的注解
Method[] ms=c.getMethods();
for (Method m : ms) {
boolean isMExist = m.isAnnotationPresent(Description.class);// 推断注解是否存在
if(isMExist){
// 拿到注解实例
Description d = (Description) m.getAnnotation(Description.class);
System.out.println(d.desc());
}
}
/**********************************************/
//第二种解析方法
for (Method m : ms) {
Annotation []as=m.getAnnotations();
for (Annotation a : as) {
if(a instanceof Description){
Description d=(Description) a;
System.out.println(d.desc());
}
}
}
}
catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


}

----------------控制台打印结果------------------------------------------

在Child上的类注解
在Child的name()方法注解
Child中number()方法注解
在Child的name()方法注解
Child中number()方法注解













































































以上是关于看下面java代码,有关Java与Excel的问题,盼高手解答!!!的主要内容,如果未能解决你的问题,请参考以下文章

Java架构-Apache POI Excel

Java开发小白求助,筛选日期有关问题?

java 有关word,excel,pdf转换成html 有几种方式

java注解学习笔记

java spring MVC 用poi做Excel导入碰到一个问题,求大神指教,有关下拉框的问题

数据结构与算法(Java版) | 就让我们来看看几个实际编程中遇到的问题吧!