标题:
Java-------写入excel
[打印本页]
作者:
look_w
时间:
2019-4-19 19:43
标题:
Java-------写入excel
现在记录写入
首先下载包
java excel api
Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、Servlet来调用API实现对Excel数据表的访问。
/**生成一个Excel文件
* @param fileName 要生成的Excel文件名
*/
public static void writeExcel(String[][] content,String city){
WritableWorkbook wwb = null;
try {
//首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
wwb = Workbook.createWorkbook(new File("e:\\land.xls"));
} catch (IOException e) {
e.printStackTrace();
}
if(wwb!=null){
//创建一个可写入的工作表
//Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
WritableSheet ws = wwb.createSheet(city,1);
//下面开始添加单元格
for(int row=0;row<content.length;row++){
System.out.println(row);
for(int j=0;j<content[row].length;j++){
//这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
Label labelC = new Label(j, row,content[row][j]);
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();
}
}
}
(1)最简单的字符型数据
Label label = new Label(0, 0, "This isa Label cell",wcfF);
ws.addCell(label);
在Label()方法里面有三个参数
第一个是代表列数,
第二是代表行数,
第三个代表要写入的内容
第四个是可选项,是输入这个label里面的样式
然后通过写sheet的方法addCell()把内容写进sheet里面。
字体样式:
WritableFont wf = newWritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true);
WritableFont()方法里参数说明:
这个方法算是一个容器,可以放进去好多属性
第一个: TIMES是字体大小,他写的是18
第二个: BOLD是判断是否为斜体,选择true时为斜体
第三个: ARIAL
第四个: UnderlineStyle.NO_UNDERLINE 下划线
第五个: jxl.format.Colour.RED 字体颜色是红色的
WritableCellFormat wcfF = newWritableCellFormat(wf);
(2)添加带有formatting的Number对象
NumberFormat nf = new NumberFormat("#.##");
(3)添加Number对象
(3.1)显示number对象数据的格式
NumberFormat nf = newNumberFormat("#.##");
WritableCellFormat wcfN = newWritableCellFormat(nf);
Number labelNF = newNumber(1,1,3.1415926,wcfN);
ws.addCell(labelNF);
Number()方法参数说明:
前两上表示输入的位置
第三个表示输入的内容
(4)添加Boolean对象
Boolean labelB = new Boolean(0,2,false);
ws.addCell(labelB);
(5)添加DateTime对象
DateTime labelDT = new DateTime(0,3,newjava.util.Date());
ws.addCell(labelDT);
DateTime()方法的参数说明
前两个表示输入的位置
第三个表示输入的当前时间
(6)添加带有formatting的DateFormat对象
这个显示当前时间的所有信息,包括年月日小时分秒
DateFormat df = new DateFormat("dd MMyyyy hh:mm:ss");
WritableCellFormat wcfDF = newWritableCellFormat(df);
DateTime labelDTF = new DateTime(1,3,newjava.util.Date(),wcfDF);
ws.addCell(labelDTF);
(7)添加带有字体颜色Formatting的对象
WritableFont wfc = newWritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,UnderlineStyle.NO_UNDERLINE,Colour.RED);
WritableCellFormat wcfFC = newWritableCellFormat(wfc);
import="jxl.format.*
WritableFont wfc = newWritableFont(WritableFont.ARIAL,20,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.GREEN);
(8)设置单元格样式
WritableCellFormat wcfFC = newWritableCellFormat(wfc);
wcfFC.setBackGround(Colour.RED);//设置单元格的颜色为红色
wcfFC = new Label(6,0,"I lovechina",wcfFC);
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0