我用Java写的进销存,客户要excel导入导出的功能,怎么做啊,谢各位大虾了
解决方案 »
- hibernate SQLQuery 查询问题
- 有没有好看的java 安装文件制作工具
- 请教关于struts2.0中token的配置
- 初学axis2,发布了一个服务,有问题,namespace mismatch require http://ws.apache.org/axis2 found none
- Windows下Apache与Subversion整合出错.
- struts2一点小问题
- 偶很菜,高手来指点一下哈,快疯掉了
- JavaScript ,获取行号问题
- axis 的一个简单例子出错,高分求救!
- 理解面向接口编程,面向接口编程的优势,以及对系统设计的影响
- 表单提交后,用getParameter来获取值的问题
- hibernate map 映射,key和value只能是一对一吗,一个key对应多个value怎么办?
POI
去看看老紫竹的网站上的例子吧
jxl 或 poi
如果没有特效要求,只是文字等信息,而且效率要求高,那么可以考虑FastExcel,LZ可以去Baidu这两个东西,找一些具体的例子看看,很好学的。
1、POI这个是我们最常用的了。
2、jxl也是一个常用的读写excel文档的java包。
以上两个楼主需要下载各自的jar文件才行,使用起来都差不多,面向对象的使用都比较简单。
区别:好像是jxl不能对excel中的图形做一个好的处理。
以上详细楼主还是查查google一下吧。
网上Google一下资料一大堆
package com.huawei;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
FileInputStream fis = new FileInputStream(new File("d:/1.xls"));
Workbook rwb = Workbook.getWorkbook(fis);
Sheet rs = rwb.getSheet(0);
int rows = rs.getRows();
int columns=rs.getColumns();
System.out.println(columns);
int n = 0; //定义几列,这里有三列
int c = 1;
int t = 2;
for (int i = 1; i < rows; i++) {
String name = rs.getCell(n, i).getContents().trim();
String city = rs.getCell(c, i).getContents().trim();
String address = rs.getCell(t, i).getContents().trim();
Coupon coupon=new Coupon();
coupon.setCity(city); coupon.setName(name);
coupon.setAddress(address);
System.out.println(coupon.getName()+"\t"+coupon.getCity()+"\t"+coupon.getAddress());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (BiffException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}
这个是数据导入Excel中、package com.huawei;import java.io.File;
import java.io.FileOutputStream;import jxl.Workbook;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;public class ExcelWrite {
public static void main(String agrs[]) {
File file = new File("D:/2.xls");
try {
FileOutputStream out = new FileOutputStream(file);
WritableWorkbook work = Workbook.createWorkbook(out);
WritableSheet ws = work.createSheet("TeestSheet1", 100);
ws.setName("产品管理信息");
WritableFont wfont = new WritableFont(WritableFont.ARIAL, 10,
WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.BLUE);
WritableCellFormat wcf = new WritableCellFormat(wfont);
Label label;
Label label1;
for (int i = 1; i <= 5; i++) {
label = new Label(i, 0, "Name", wcf);
ws.addCell(label);
for (int j = 1; j <= 5; j++) {
label1 = new Label(i, j, "wangjian", wcf);
ws.addCell(label1);
}
} work.write();
work.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
你上apache网站上下载依赖包,里面有docs看一下
就能上手了
很不错!public static void writeExcel(String fileName){
WritableWorkbook wwb = null;
try {
//首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
wwb = Workbook.createWorkbook(new File(fileName));
} catch (IOException e) {
e.printStackTrace();
}
if(wwb!=null){
//创建一个可写入的工作表
//Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
WritableSheet ws = wwb.createSheet("sheet1", 0);
//下面开始添加单元格
for(int i=0;i<10;i++){
for(int j=0;j<5;j++){
//这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
Label labelC = new Label(j, i, "这是第"+(i+1)+"行,第"+(j+1)+"列");
try {
//将生成的单元格添加到工作表中
ws.addCell(labelC);
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
}
try {
//从内存中写入文件中
wwb.write();
//关闭资源,释放内存
wwb.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
}