//创建一个工作薄的对象
WritableWorkbook wwb = Workbook.createWorkbook(new File("e:/excel.xls"));
//读取工作薄的对象
Workbook wk=Workbook.getWorkbook(new File("e:/excel.xls"));
//创建Sheet
对象WritableSheet ws = wwb.createSheet("单据", 0);
一、 数据类型操作:在Excel中不涉及复杂的数据类型,能够比较好的处理字串、数字和日期已经能够满足一般的应用。1、 字串格式化
字符串的格式化涉及到的是字体、粗细、字号等元素,这些功能主要由WritableFont和
WritableCellFormat类来负责。String name="这是String类型"; //字符串
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
df.format(new Date());
BigDecimal freight=new BigDecimal("200.2356545");//数字类型WritableFont font1 = new WritableFont(WritableFont.createFont("宋体"),10, WritableFont.BOLD,false);//① 设置字体
WritableCellFormat format1 = new WritableCellFormat(font1);//②
Label label = new Label( 0 , 0 ,name,format1); //③WritableFont font2 = new WritableFont(WritableFont.createFont("宋体"),10, WritableFont.BOLD,false);//① 设置字体
WritableCellFormat format2 = new WritableCellFormat(font2); //②
Label labe2 = new Label( 0 , 0 ,df.format(new Date()).toString(),format2); //③
WritableFont font3 = new WritableFont(WritableFont.createFont("宋体"),10, WritableFont.BOLD,false);//① 设置字体
WritableCellFormat format3 = new WritableCellFormat(font3);//②
Number number = new Number( 0 , 0 ,freight.doubleValue(),format2);//③
在WritableCellFormat类中,还有一个很重要的方法是指定数据的对齐方式。例如:
把水平对齐方式指定为居中
format1.setAlignment(jxl.format.Alignment.CENTRE);
把垂直对齐方式指定为居中
format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
把水平对齐方式指定为居中
format1.setAlignment(jxl.format.Alignment.CENTRE);
把垂直对齐方式指定为居中
format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); ①代表了字串格式:字体为宋体,字号10,加粗显示。WritableFont有非常丰富的构造子,供不同情况下使用,jExcelAPI中的java-doc中有详细介绍,这里就不一一列出了。
②处使用了WritableCellFormat类,这个类非常重要,通过它可以指定单元格的各种属性,后面会有有更多描述。 ③处使用了LabelNumber类的构造子、指定了字串被赋予那种格式。 二、单元格操作Excel中很重要的一部分是对单元格的操作,例如对单元格合并、行高、列宽、只读属性设置等。jExcelAPI提供了相关支持。下面简单的介绍些,更多的请查询API。 WritableSheet.mergeCells( int a, int b, int c, int d);
单元格合并函数 a 单元格的列号,b 单元格的行号,c 从单元格[a,b]起,向下合并的列数,d 从单元格[a,b]起,向下合并的行数
合并既可以是横向的,也可以是纵向的。合并后的单元格不能再次进行合并,否则会触发异常。 行高设置WritableSheet.getSettings().setDefaultColumnWidth(22);//设置列的默认宽度
WritableSheet.setRowView(2,false);//行高自动扩展
WritableSheet.setColumnView(0, 22);//设置第一列宽度
WritableSheet.setRowView(1, 10); //行高
WritableSheet.setColumnView(10,1); //列宽 只读属性设置WritableSheet.getSettings().setProtected(true);//置xls的保护,单元格为只读的 jExcelAPI还有其他的一些功能,比如插入图片等,这里就不再介绍,更多的请查询API。
如果需要知道你读取的Excel,它有多少行和多少列,如下操作:Workbook book = Workbook.getWorkbook(new File(" test.xls "));
// 获得第一个工作表对象
Sheet sheet = book.getSheet(0);
// 得到第一列第一行的单元格
int columnum = sheet.getColumns();// 得到列数
int rownum = sheet.getRows();// 得到行数
System.out.println(columnum);
System.out.println(rownum);
for (int i = 0; i < rownum; i++)// 循环进行读写
{
for (int j = 0; j < columnum; j++) {
Cell cell = sheet.getCell(j, i);
String result = cell.getContents();
System.out.print(result);
System.out.print("\t");
}
System.out.println();
}
book.close();
}