请教一个关于JXL的问题 好久没做开发了,最近需要做个小模块,在一个已经有数据的excel文件中向其最后一行插入一条数据,用JXL 怎么实现 谁能给出例子,很急 在线等 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这里有详细的APIhttp://hi.baidu.com/sayjava/blog/item/c1d66a03f0a137e808fa935e.html本人思路:首先用jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));jxl.Sheet rs = rwb.getSheet(0);int rsColumns = rs.getColumns();得到总列数,然后用jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));jxl.Sheet rs = rwb.getSheet(0);int rsRows = rs.getRows();然后算出新添加行的坐标,用以下方法写入内容//1.添加Label对象jxl.write.Label labelC = new jxl.write.Label(0, 0, "This is a Label cell");ws.addCell(labelC);//添加带有字型Formatting的对象jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true);jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf);jxl.write.Label labelCF = new jxl.write.Label(1, 0, "This is a Label Cell", wcfF);ws.addCell(labelCF);//添加带有字体颜色Formatting的对象jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED);jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);jxl.write.Label labelCFC = new jxl.write.Label(1, 0, "This is a Label Cell", wcfFC);ws.addCell(labelCF);//2.添加Number对象jxl.write.Number labelN = new jxl.write.Number(0, 1, 3.1415926);ws.addCell(labelN);//添加带有formatting的Number对象jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN);ws.addCell(labelNF);//3.添加Boolean对象jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false);ws.addCell(labelB);//4.添加DateTime对象jxl.write.DateTime labelDT = new jxl.write.DateTime(0, 3, new java.util.Date());ws.addCell(labelDT);//添加带有formatting的DateFormat对象jxl.write.DateFormat df = new jxl.write.DateFormat("dd MM yyyy hh:mm:ss");jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df);jxl.write.DateTime labelDTF = new jxl.write.DateTime(1, 3, new java.util.Date(), wcfDF);ws.addCell(labelDTF);其他细节的地方请参考API 简单点说就是先得到当前sheet的行数和列数,然后就知道了要新添加的那行的每个单元格的坐标,然后根据坐标往每个单元格中写内容,然后保存! File tar = new File("C:\\Users\\qingralf\\Desktop\\test.xls");//目标文件 Workbook wb = Workbook.getWorkbook(tar);//只读的workbook,用于计算最后一列 WritableWorkbook book = Workbook.createWorkbook(tar, wb);//可写的workbook,写入内容来源于上面打开的只读workbook WritableSheet sheet = book.getSheet(0);//取得第一个sheet页 jxl.write.Label label = new jxl.write.Label(0,wb.getSheet(0).getRows(),"你要加的字");//0列,最后一行 sheet.addCell(label);//写入sheet book.write(); book.close(); wb.close(); int rsRows = rs.getRows();得到总行数。然后构造label对象ws.addCell(label);最后write 问一下java有哪些本地存储数据的方式(交流) “用鼠标拖动我”小程序的问题? 了解泛型、反射、单例模式的请进。 关于java的applet的问题 小弟初学跪求解答 怎样用Java做出与VC#一样的图形界面? 关于调用Java包出现的问题,请高手给我讲讲! ResultSet如果让指针移动到第一条 请问如何拆分String jdbc连接数据出现一个疑问? 新手 + 菜鸟 求教 联合主键生成的类及映射文件
本人思路:
首先用jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
int rsColumns = rs.getColumns();得到总列数,然后用jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
int rsRows = rs.getRows();然后算出新添加行的坐标,用以下方法写入内容//1.添加Label对象
jxl.write.Label labelC = new jxl.write.Label(0, 0, "This is a Label cell");
ws.addCell(labelC);
//添加带有字型Formatting的对象
jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES, 18,
WritableFont.BOLD, true);
jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf);
jxl.write.Label labelCF = new jxl.write.Label(1, 0, "This is a Label Cell",
wcfF);
ws.addCell(labelCF);
//添加带有字体颜色Formatting的对象
jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10,
WritableFont.NO_BOLD, false,
UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED);
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
jxl.write.Label labelCFC = new jxl.write.Label(1, 0, "This is a Label Cell",
wcfFC);
ws.addCell(labelCF);
//2.添加Number对象
jxl.write.Number labelN = new jxl.write.Number(0, 1, 3.1415926);
ws.addCell(labelN);
//添加带有formatting的Number对象
jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);
jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN);
ws.addCell(labelNF);
//3.添加Boolean对象
jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false);
ws.addCell(labelB);
//4.添加DateTime对象
jxl.write.DateTime labelDT = new jxl.write.DateTime(0, 3, new java.util.Date());
ws.addCell(labelDT);
//添加带有formatting的DateFormat对象
jxl.write.DateFormat df = new jxl.write.DateFormat("dd MM yyyy hh:mm:ss");
jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df);
jxl.write.DateTime labelDTF = new jxl.write.DateTime(1, 3, new java.util.Date(),
wcfDF);
ws.addCell(labelDTF);
其他细节的地方请参考API
File tar = new File("C:\\Users\\qingralf\\Desktop\\test.xls");//目标文件
Workbook wb = Workbook.getWorkbook(tar);//只读的workbook,用于计算最后一列
WritableWorkbook book = Workbook.createWorkbook(tar, wb);//可写的workbook,写入内容来源于上面打开的只读workbook
WritableSheet sheet = book.getSheet(0);//取得第一个sheet页
jxl.write.Label label = new jxl.write.Label(0,wb.getSheet(0).getRows(),"你要加的字");//0列,最后一行
sheet.addCell(label);//写入sheet
book.write();
book.close();
wb.close();
得到总行数。然后构造label对象
ws.addCell(label);
最后write