jxl 操作excle 修改 添加 追加批注 java

来源:互联网 发布:ios 大众点评 源码 编辑:程序博客网 时间:2024/06/05 09:25
import java.io.File;import java.util.regex.Matcher;import java.util.regex.Pattern;import jxl.Sheet;import jxl.Workbook;import jxl.format.CellFormat;import jxl.write.Label;import jxl.write.WritableCell;import jxl.write.WritableCellFeatures;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;public class ExcelTools {/** *  * 设置excel修改批注信息 *  * @param File file 文件 * @param Workbook book  * @param int col 列坐标 * @param int row 行坐标 * @param String text 批注信息 * @return boolean true|false */public synchronized static boolean updateCmment(File file, Workbook book, int col, int row, String text) {WritableWorkbook wbe = null;WritableSheet sheet = null;WritableCell cell = null;int height;try {wbe = Workbook.createWorkbook(file, book);//创建workbook的副本  sheet = wbe.getSheet(0);  //获取第一个sheet          cell =sheet.getWritableCell(col, row);       //获取第一个单元格          WritableCellFeatures cellFeatures = new WritableCellFeatures(); //创建空的featuresif(null != cell.getCellFeatures()){cell.getCellFeatures().removeComment();}else{cell.setCellFeatures(cellFeatures);}height = getCommentRows(text, "\r\n");cellFeatures.setComment(text, 3, height+2);cell.setCellFeatures(cellFeatures);return true;} catch (Exception e) {e.printStackTrace();return false;}finally{try {wbe.write();//将修改保存到workbookwbe.close();//关闭workbook,释放内存} catch (Exception e) {e.printStackTrace();}    }}/** *  * 设置excel追加批注信息,保留原来批注 *  * @param File file 文件 * @param Workbook book  * @param int col 列坐标 * @param int row 行坐标 * @param String text 批注信息 * @return boolean true|false */public synchronized static boolean addCmment(File file, Workbook book, int col, int row, String text) {WritableWorkbook wbe = null;WritableSheet sheet = null;WritableCell cell = null;String oldmark = null;int height;try {wbe = Workbook.createWorkbook(file, book);//创建workbook的副本  sheet = wbe.getSheet(0);  //获取第一个sheet          cell =sheet.getWritableCell(col, row);       //获取第一个单元格          WritableCellFeatures cellFeatures = new WritableCellFeatures(); //创建空的featuresoldmark = cell.getCellFeatures() == null ? null : cell.getCellFeatures().getComment();//原批注if(null != oldmark){cell.getCellFeatures().removeComment();text = oldmark + "\r\n---------------\r\n" + text;}else{cell.setCellFeatures(cellFeatures);}height = getCommentRows(text, "\r\n");cellFeatures.setComment(text, 3, height+3);cell.setCellFeatures(cellFeatures);return true;} catch (Exception e) {e.printStackTrace();return false;}finally{try {wbe.write();//将修改保存到workbookwbe.close();//关闭workbook,释放内存} catch (Exception e) {e.printStackTrace();}    }}/** *  * 设置删除批注信息 *  * @param File file 文件 * @param Workbook book  * @param int col 列坐标 * @param int row 行坐标 * @return boolean true|false */public synchronized static boolean removeCmment(File file, Workbook book, int col, int row) {WritableWorkbook wbe = null;WritableSheet sheet = null;WritableCell cell = null;try {wbe = Workbook.createWorkbook(file, book);//创建workbook的副本  sheet = wbe.getSheet(0);  //获取第一个sheet          cell =sheet.getWritableCell(col, row);       //获取第一个单元格          WritableCellFeatures cellFeatures = new WritableCellFeatures(); //创建空的featuresif(null != cell.getCellFeatures()){cell.getCellFeatures().removeComment();}cell.setCellFeatures(cellFeatures);return true;} catch (Exception e) {e.printStackTrace();return false;}finally{try {wbe.write();//将修改保存到workbookwbe.close();//关闭workbook,释放内存} catch (Exception e) {e.printStackTrace();}    }}public static int getCommentRows(String str, String findstr){String regEx = findstr; //要匹配的子串,可以用正则表达式 Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(str); int i = 0;while(m.find()) {i++;}return i;}/** * 测试 */public static void main(String[] args) throws Exception {//添加批注startFile file =  new File("D://001311600.xls");//File file =  new File("D://3333.xls");Workbook book = Workbook.getWorkbook(file);Sheet sheet = book.getSheet(0);System.out.println(sheet.getRow(0)[0].getContents());//打印坐标 0,0 文字信息ExcelTools.addCmment(file, book, 0, 0, "测试787123456789012");//ExcelTools.updateCmment(file, book, 0, 0, "测试787123456789012\r\n");//ExcelTools.removeCmment(file, book, 0, 0);        book.close();        }}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 做事注意力不能集中怎么办 幼儿争抢玩具老师怎么办 孩子不专心学习怎么办 一年级孩子学习边学边忘怎么办 对爱不专心怎么办 孩子脑子不灵活怎么办 小孩写作业心慌怎么办 4岁写数字怎么办 孩子做事太慢怎么办 小孩子做事不认真怎么办 员工做事不认真怎么办 做事总是不认真怎么办 孩子上课老是讲话怎么办 孩子上课总讲话怎么办 孩子不求上进怎么办 孩子只知道吃完怎么办 孩子演出前紧张怎么办 儿童写字不专心怎么办 孩子上课没精神怎么办 小孩写字太慢怎么办 儿童上课不集中怎么办 突然头晕迷糊眼花怎么办 自己上课不专心怎么办 颈椎病头晕怎么办才好 孩孑记忆力不好怎么办 上课的时候困怎么办 小学生写字太慢怎么办 一年级小学生写字慢怎么办 小学生写字太用力怎么办 专注力不集中怎么办 一年级孩子写字慢怎么办 孩子话很多应该怎么办 孩子废话特别多怎么办 老师不认真教学怎么办 小孩脸上长痦子怎么办 小朋友爱讲笑话怎么办 小孩上课不认真怎么办 小孩子精神不集中怎么办 孩子上课都不听怎么办 把孩子脸打肿了怎么办 学佛 家人爱吃肉怎么办