本帖最后由 孙浩臻 于 2013-8-7 22:03 编辑
jexcelapi jxl学习笔记 (1)
http://bbs.itheima.com/forum.php?mod=viewthread&tid=67419
(出处: 黑马程序员训练营论坛)
这部分是学习笔记中的示例代码
package com.xls.test;
import java.io.File;
import jxl.Cell;
import jxl.CellType;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCell;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableImage;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class XLS {
public static void main(String args[]) {
try {
//createXls();
readXls();
//mergeCells();
//createXlsImg();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 创建一个新的xls
*
* @throws Exception
*/
public static void createXls() throws Exception {
// 打开文件
WritableWorkbook book = Workbook .createWorkbook(new File("c:\\test.xls"));
// 设置左下角的内个工作薄的名称和第几个工作薄
// 若只有一个工作薄 就算设置的不是0 也会默认为0
WritableSheet sheet = book.createSheet(" 第一页 ", 0);
// 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
// 以及单元格内容为test
Label label = new Label(0, 0, " test ");
// 将定义好的单元格添加到工作表中
sheet.addCell(label);
// 写入数据并关闭文件
book.write();
book.close();
}
/**
* 读取指定的xls
*
* @throws Exception
*/
public static void readXls() throws Exception {
Workbook book = Workbook.getWorkbook(new File("c:\\test.xls"));
// 获得第一个工作表对象
Sheet sheet = book.getSheet(0);
// 得到第一列第一行的单元格
Cell cell = sheet.getCell(0, 0);
//获取内容的类型
System.out.println(cell.getType());
// 获取内容
String result = cell.getContents();
System.out.println(result);
book.close();
}
/**
* 合并单元格并在单元格中输入内容
* @throws Exception
*/
public static void mergeCells() throws Exception {
WritableWorkbook book = Workbook.createWorkbook(new File("c:\\test.xls"));
//设置左下角的内个工作薄的名称和第几个工作薄
//若只有一个工作薄 就算设置的不是0 也会默认为0
WritableSheet sheet = book.createSheet("第一页", 0);
// 合并单元格
sheet.mergeCells(3, 3, 6, 6);
// 设置填充内容的格式
WritableFont font = new WritableFont(WritableFont.TIMES, 30,WritableFont.BOLD);
WritableCellFormat format = new WritableCellFormat(font);
// 水平居中
format.setAlignment(jxl.format.Alignment.CENTRE);
// 垂直居中
format.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
// 背景颜色和样式
format.setBackground(jxl.format.Colour.BLUE);
// 边框样式
format.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THICK);
// 添加内容
Label label = new Label(3, 3, "合并", format);
sheet.addCell(label);
book.write();
book.close();
}
/**
* 在工作表中添加图片
* @throws Exception
*/
public static void createXlsImg() throws Exception {
WritableWorkbook book = Workbook.createWorkbook(new File("c:\\test.xls"));
//设置左下角的内个工作薄的名称和第几个工作薄
//若只有一个工作薄 就算设置的不是0 也会默认为0
WritableSheet sheet = book.createSheet("第一页", 0);
//第一个参数的 double x , double y , double width, double height 所指的全部都是xls中的格子数
//第二个参数 图片地址
//JExcelAPI对图片的操作有限:它不能生成图表、图片和宏,但是复制工作表时,这些信息可以保留复制。
//而且当向工作表中添加图片时,只能支持PNG格式的图片。
WritableImage image = new WritableImage(10.0,10.0,5,20,new File("C:\\test.png"));
//添加图片
sheet.addImage(image);
book.write();
//如果写入之后不关闭book的话
//将会导致生成的Excel文档在打开时提示“文件的格式与扩展名指定的格式不一致”
book.close();
}
/**
* 修改xls文件
* @throws Exception
*/
public static void alterExcel() throws Exception
{
Workbook rw = Workbook.getWorkbook(new File("c://test.xls")) ;
WritableWorkbook wwb = Workbook.createWorkbook(new File("c://test1.xls"), rw) ;
WritableSheet ws = wwb.getSheet(0) ;
WritableCell wc = ws.getWritableCell(0, 0) ;
//判断获取到的内容是否为字符串 若为字符串变进入if
if(wc.getType() == CellType.LABEL){
Label l = (Label)wc ;
l.setString("the value has been modified!!") ;
}
wwb.write() ;
wwb.close() ;
rw.close() ;
System.out.println("修改成功!!") ;
}
}
|