如何用java读取excel设置的单元格属
poi好像能读取超过128列数据知道我记错了直用jxl网上和官方发布jxl有致命缺陷编码问题需要自己更改代码再重编译jxl包我建议用poi吧般poi编码会有问题 言归正传jxl设计时候颜色等信息直接设计单元格Cell类而通过CellFormat存储各属性 Workbook book = Workbook。
getWorkbook(new File("fileName")); 读取文件Sheet sheet = book。getSheet(0); 获得第工作表Cell c1 = sheet。
getCell(0, 0); 获得第列第行CellFormat cf1=c1。 getCellFormat() ; 得内置对象CellFormatFont fontYour=cf1。
getFont(); 字体Colour colYour=cf1。getBackgroundColour() ; 颜色等等自己研究 我有jxl API 需要 给我发信息吧。
jxl读取excel文件
用jxl读取excel的数据,由于excel数据在录入时的各种原因,数据后面都有空格,而且读出来以后(也许是编码原因),数据口面不是出现"?"就是出现一个不知所谓的乱码符,不要考虑用替换,因为替换只有在你的项目编码方式和内存中excel数据编码方式一样的时候才能替换,否则你连保存都会提示编码问题而保存不了。
直接用subSequence(0, cellContent.length()-1) 就可以了 同时提醒一下读取出来的数据时Cell类型的话,直接getContent是可以得到内容的,但具体内容最好依靠下面的方法获Java代码if (cell.getType() == CellType.LABEL) { LabelCell labelCell = (LabelCell) cell; String cellContent = labelCell.getString(); cellContent = (String) cellContent.subSequence(0, cellContent.length()-1); column_contents[cols] = cellContent; } else if (cell.getType() == CellType.NUMBER) { //number的话不用去空格就可以,我测试是这样 NumberCell numberCell = (NumberCell) cell; String cellContent = numberCell.getContents(); column_contents[cols] = cellContent; } else if (cell.getType() == CellType.DATE) { DateCell dateCell = (DateCell) cell; Date dateDemo = dateCell.getDate(); String cellContent = dateDemo.toString(); column_contents[cols] = cellContent; }我之前和朋友交流时朋友给我一段代码,你也可以试一下1 import java.io.File;2 import java.io.FileInputStream;3 4 import jxl.Cell;5 import jxl.Sheet;6 import jxl.Workbook;7 8 9 public class testxls {10 /**11 * 读取xls文件内容12 * @param file 想要读取的文件对象13 * @return 返回文件内容14 */15 public static String xls2String(File file){16 String result = "";17 try{18 FileInputStream fis = new FileInputStream(file); 19 StringBuilder sb = new StringBuilder(); 20 jxl.Workbook rwb = Workbook.getWorkbook(fis); 21 Sheet[] sheet = rwb.getSheets(); 22 for (int i = 0; i < sheet.length;="" i++)="" {="" 23="" sheet="" rs="rwb.getSheet(i);" 24="" for="" (int="" j="0;" j="">< rs.getrows();="" j++)="" {="" 25="" cell[]="" cells="rs.getRow(j);" 26="" for(int="" k="">
怎样用java.jxl实现读取excel的数据?求具体代码(以读取3列为例)-百
import java.io.File;import java.io.IOException;import jxl.Cell;import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffException;public class MyExcel { public static void main(String[] args) { try { Workbook workbook = Workbook.getWorkbook(new File("C:\\myfile.xls")); Sheet sheet = workbook.getSheet(0);//使用第一个工作表 int colnum = sheet.getColumns();//获取列数,如果一定要3列,直接改3就行 int row = sheet.getRows();//获取行数 StringBuffer sb = new StringBuffer(); for(int i=0;i
要读取内容关键是以下几步:1.创建一个可读取的excel文件对象 Workbook workbook = Workbook.getWorkbook(new File("C:\\myfile.xls"));//注意文件路径2.获取工作表 Sheet sheet = workbook.getSheet(0);//使用第一个工作表3.获取单元格数据,我的例子里是通过循环获取所有的数据 sheet.getCell(j,i);4.最后把获取的数据做你所需要的处理。sb.append(c.getContents()+"\n");//我这里把它加到了StringBuffer里。
用java实现将数据库获得的数据转成word文档
导出xls格式文件,有一个包xls。
jar专门做这件事的jxl.jar 包下载InstallationJExcelApi comes packaged as a zipped tar file, called something like jexcelapi_2_0.tar.gz.To unpack on UNIX systems, at the command line typegunzip jexcelapi_2_0.tar.gz followed bytar xf jexcelapi_2_0.tarOn Linux systems this can be accomplished within the single commandtar zxf jexcelapi_2_0.tar.gzOn Windows/NT systems, the archive may be unpacked visually using a utility such as Winzip.作者的网站上对它的特征有如下描述:● 支持Excel 95-2000的所有版本● 生成Excel 2000标准格式● 支持字体、数字、日期操作● 能够修饰单元格属性● 支持图像和图表应该说以上功能已经能够大致满足我们的需要。最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。
另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。搭建环境将下载后的文件解包,得到jxl.jar,放入classpath,安装就完成了。
基本操作一、创建文件拟生成一个名为“测试数据.xls”的Excel文件,其中第一个工作表被命名为“第一页”,大致效果如下:代码(CreateXLS.java)://生成Excel的类import java.io.*;import jxl.*;import jxl.write.*;public class CreateXLS { public static void main(String[] args){ try{ //创建文件 WritableWorkbook book = Workbook.createWorkbook(new File("测试.xls")); //生成名为“第一页”的工作表,参数0表示这是第一页 WritableSheet sheet = book.createSheet("第一页" ,0); //在Label对象的构造子中指名单元格位置是第一列第一行(0,0) 以及单元格内容为test Label label = new Label(0,0,"test"); //将定义好的单元格添加到工作表中 sheet.addCell(label); /*生成一个保存数字的单元格 必须使用Number的完整包路径, 否则有语法歧义 ,单元格位置是第二列,第一行,值为789.123 */ //写入数据并关闭文件 jxl.write.Number number = new jxl.write.Number(1,0,789.123); sheet.addCell(number); book.write(); book.close(); }catch(Exception e){ System.out.println(e); } }}编译执行后,会在当前位置产生一个Excel文件。三、读取文件以刚才我们创建的Excel文件为例,做一个简单的读取操作,程序代码如下://读取Excel的类import java.io.*;import jxl.*;public class ReadXLS{public static void main(String args[]){try{Workbook book=Workbook.getWorkbook(new File(“测试.xls”));//获得第一个工作表对象Sheet sheet=book.getSheet(0);//得到第一列第一行的单元格Cell cell1=sheet.getCell(0,0);String result=cell1.getContents();System.out.println(result);book.close();}catch(Exception e){System.out.println(e);}}}程序执行结果:test四、修改文件利用jExcelAPI可以修改已有的Excel文件,修改Excel文件的时候,除了打开文件的方式不同之外,其他操作和创建Excel是一样的。
下面的例子是在我们已经生成的Excel文件中添加一个工作表://修改Excel的类,添加一个工作表import java.io.*;import jxl.*;import jxl.write.*;public class UpdateXLS{public static void main(String args[]){try{//Excel获得文件Workbook wb=Workbook.getWorkbook(new File(“测试.xls”));//打开一个文件的副本,并且指定数据写回到原文件WritableWorkbook book=Workbook.createWorkbook(new File(“测试.xls”),wb);//添加一个工作表WritableSheet sheet=book.createSheet(“第二页”,1);sheet.addCell(new Label(0,0,”第二页的测试数据”));book.write();book.close();}catch(Exception e){System.out.println(e);}}}执行结果如图:高级操作一、 数据格式化在Excel中不涉及复杂的数据类型,能够比较好的处理字串、数字和日期已经能够满足一般的应用。1、 字串格式化字符串的格式化涉及到的是字体、粗细、字号等元素,这些功能主要由WritableFont和WritableCellFormat类来负责。
假设我们在生成一个含有字串的单元格时,使用如下语句,为方便叙述,我们为每一行命令加了编号:WritableFont font1=new WritableFont(WritableFont.TIMES,16,WritableFont.BOLD); 或//设置字体格式为excel支持的格式 WritableFont font3=new WritableFont(WritableFont.createFont("楷体_GB2312"),12,WritableFont.NO_BOLD );① WritableCellFormat format1=new WritableCellFormat(font1); ② Label label=new Label(0,0,”data 4 test”,format1) ③ 其中①指定了字串格式:字体为TIMES,字号16,加粗显示。WritableFont有非常丰富的构造子,供不同情况下使用,jExcelAPI的java-doc中有详细列表,这里不再列出。
②处代码使用了WritableCellFormat类,这个类非常重要,通过它可以指定单元格的各种属性,后面的单元格格式化中会有更多描述。 ③处使用了Label类的构造子,指定了字串被赋予那种格式。
在WritableCellFormat类中,还有一个很重要的方法是指定数据的对齐方式,比如。
lcyyayy