一、怎样往excel中写入数据
需要依赖一些类库,
1官方的 有微软自己的Microsoft.Office.Interop.Excel.DLL
这个插件功能非常强大,完整的支持所有的excel功能,(这个dll其实就是EXCEL自己的),但是有个缺点,就是运行这个插件的机器上必须有相应版本的EXCEL软件,否则运行不了,(比如07版excel 你引用的dll必须得是3.5版本)
一般在服务端使用这个插件,把EXCEL生成好之后,通过文件流(stream)传给客户端。
2第三方的, 最推荐的是NPOI (是免费的)
NPOI是POI的.NET版本,支持大部分EXCEL功能,(不如微软自己的dll全面),但是他的执行速度非常的快,因为他是用2进制读取EXCEL单元格的,
而且这个插件不依赖OFFICE组件, 你哪怕电脑打不开EXCEL ,都可以用这个插件生成.XLSX文件, 即可以用在服务端,也可以做胖客户端的处理,(根据数据直接导出EXCEL)。
这些插件的使用都大同小异,因为excel说白了就是一个DataTable,
读取和写入都是从 工作薄(sheet) 找到某一行(row),然后找一列(column)
这样一个个遍历出来单元格的值的、
二、java中怎样在excel中写数据
需要导入jxl.jar
搭建环境
将下载后的文件解包,得到jxl.jar,放入classpath,安装就完成了。
创建文件
拟生成一个名为“测试数据.xls”的Excel文件,其中第一个工作表被命名为“第一页”,大致效果如下:
代码(CreateXLS.java):
//生成Excel的类
import java.io.*;
import jxl.*;
import jxl.write.*;
public class CreateXLS
{
public static void main(String args[])
{
try
{
//打开文件
WritableWorkbook book=
Workbook.createWorkbook(new File(“测试.xls”));
//生成名为“第一页”的工作表,参数0表示这是第一页
WritableSheet sheet=book.createSheet(“第一页”,0);
//在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
//以及单元格内容为test
Label label=new Label(0,0,”test”);
//将定义好的单元格添加到工作表中
sheet.addCell(label);
/*生成一个保存数字的单元格
必须使用Number的完整包路径,否则有语法歧义
单元格位置是第二列,第一行,值为789.123*/
jxl.write.Number number = new jxl.write.Number(1,0,789.123);
sheet.addCell(number);
//写入数据并关闭文件
book.write();
book.close();
}catch(Exception e)
{
System.out.println(e);
}
}
}
编译执行后,会在当前位置产生一个Excel文件。