「java中表格有什么操作」javaswing表格

博主:adminadmin 2023-03-23 03:27:09 330

今天给各位分享java中表格有什么操作的知识,其中也会对javaswing表格进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

JAVA 表格操作

我现在刚用的就是jxl的东西。不过,我里面的文件path没有弄好,设了个死的进去啦 package com.jin.comm.share; import java.io.File; import java.util.ArrayList;import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import com.jin.beans.CustomerInfor;public class ExportFile { public void expToXSL(ArrayList datalist, String path)throws Exception{ WritableWorkbook book = Workbook.createWorkbook(new File(path)); // 设置表名 WritableSheet sheet = book.createSheet("客户信息",0); // 生成表格题头 Label labe1 = new Label(0, 0, "编码" ); Label labe2 = new Label(1, 0, "旅行社简称"); Label labe3 = new Label(2, 0, "销售代表"); Label labe4 = new Label(3, 0, "客户级别"); Label labe5 = new Label(4, 0, "合作情况"); Label labe6 = new Label(5, 0, "类型"); Label labe7 = new Label(6, 0, "可信任值"); Label labe8 = new Label(7, 0, "开始合作日期" ); Label labe9 = new Label(8, 0, "终止合作日期"); Label labe10 = new Label(9, 0, "付款方式"); Label labe11 = new Label(10, 0, "旅行社全称"); Label labe12 = new Label(11, 0, "国家/地区"); Label labe13 = new Label(12, 0, "省/直辖市"); Label labe14 = new Label(13, 0, "城市"); Label labe15 = new Label(14, 0, "街道" ); Label labe16 = new Label(15, 0, "邮政编码"); Label labe17 = new Label(16, 0, "电话"); Label labe18 = new Label(17, 0, "传真"); Label labe19 = new Label(18, 0, "电子邮件"); Label labe20 = new Label(19, 0, "web页地址"); Label labe21 = new Label(20, 0, "开户银行"); Label labe22 = new Label(21, 0, "银行账号" ); Label labe23 = new Label(22, 0, "所属机构"); Label labe24 = new Label(23, 0, "所属部门"); Label labe25 = new Label(24, 0, "维护人"); Label labe26 = new Label(25, 0, "维护时间"); Label labe27 = new Label(26, 0, "备注"); //将生成的单元格添加到工作表中 sheet.addCell(labe1); sheet.addCell(labe2); sheet.addCell(labe3); sheet.addCell(labe4); sheet.addCell(labe5); sheet.addCell(labe6); sheet.addCell(labe7); sheet.addCell(labe8); sheet.addCell(labe9); sheet.addCell(labe10); sheet.addCell(labe11); sheet.addCell(labe12); sheet.addCell(labe13); sheet.addCell(labe14); sheet.addCell(labe15); sheet.addCell(labe16); sheet.addCell(labe17); sheet.addCell(labe18); sheet.addCell(labe19); sheet.addCell(labe20); sheet.addCell(labe21); sheet.addCell(labe22); sheet.addCell(labe23); sheet.addCell(labe24); sheet.addCell(labe25); sheet.addCell(labe26); sheet.addCell(labe27); for(int i=1; i=datalist.size(); i++){ CustomerInfor infor = (CustomerInfor)datalist.get(i-1); Label label1=new Label(0,i,infor.getCode()); Label label2=new Label(1,i,infor.getDepartment()); Label label3=new Label(2,i,infor.getSales()); Label label4=new Label(3,i,infor.getLevel()); Label label5=new Label(4,i,infor.getTecase()); Label label6=new Label(5,i,infor.getTetype()); Label label7=new Label(6,i,infor.getTrust()); Label label8=new Label(7,i,infor.getStarttime()==null ? null : infor.getStarttime().toString()); Label label9=new Label(8,i,infor.getEndtime()==null ? null : infor.getEndtime().toString()); Label label10=new Label(9,i,infor.getPaytype() ); Label label11=new Label(10,i,infor.getFullname() ); Label label12=new Label(11,i,infor.getCountry() ); Label label13=new Label(12,i,infor.getProvince() ); Label label14=new Label(13,i,infor.getLocality() ); Label label15=new Label(14,i,infor.getStreet() ); Label label16=new Label(15,i,infor.getPostal() ); Label label17=new Label(16,i,infor.getPhone() ); Label label18=new Label(17,i,infor.getFax() ); Label label19=new Label(18,i,infor.getEmail() ); Label label20=new Label(19,i,infor.getWebsite() ); Label label21=new Label(20,i,infor.getBankname() ); Label label22=new Label(21,i,infor.getBanknum() ); Label label23=new Label(22,i,infor.getInstitution() ); Label label24=new Label(23,i,infor.getIndepart() ); Label label25=new Label(24,i,infor.getKeepby() ); Label label26=new Label(25,i,infor.getKeepday()==null ? null :infor.getKeepday().toString()); Label label27=new Label(26,i,infor.getComment() ); //将生成的单元格添加到工作表中 sheet.addCell(label1); sheet.addCell(label2); sheet.addCell(label3); sheet.addCell(label4); sheet.addCell(label5); sheet.addCell(label6); sheet.addCell(label7); sheet.addCell(label8); sheet.addCell(label9); sheet.addCell(label10); sheet.addCell(label11); sheet.addCell(label12); sheet.addCell(label13); sheet.addCell(label14); sheet.addCell(label15); sheet.addCell(label16); sheet.addCell(label17); sheet.addCell(label18); sheet.addCell(label19); sheet.addCell(label20); sheet.addCell(label21); sheet.addCell(label22); sheet.addCell(label23); sheet.addCell(label24); sheet.addCell(label25); sheet.addCell(label26); sheet.addCell(label27); } book.write(); book.close(); }

java中excel表格导入实例

需要导入jxl.jar (在网上可以下载,然后放到lib文件夹中)

开放分类: java

通过java操作excel表格的工具类库

支持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类中,还有一个很重要的方法是指定数据的对齐方式,比如针对我们上面的实例,可以指定:

//把水平对齐方式指定为居中

format1.setAlignment(jxl.format.Alignment.CENTRE);

//把垂直对齐方式指定为居中

format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

//设置自动换行

format1.setWrap(true);

单元格操作

Excel中很重要的一部分是对单元格的操作,比如行高、列宽、单元格合并等,所幸jExcelAPI提供了这些支持。这些操作相对比较简单,下面只介绍一下相关的API。

1、 合并单元格

WritableSheet.mergeCells(int m,int n,int p,int q);

作用是从(m,n)到(p,q)的单元格全部合并,比如:

WritableSheet sheet=book.createSheet(“第一页”,0);

//合并第一列第一行到第六列第一行的所有单元格

sheet.mergeCells(0,0,5,0);

合并既可以是横向的,也可以是纵向的。合并后的单元格不能再次进行合并,否则会触发异常。

2、 行高和列宽

WritableSheet.setRowView(int i,int height);

作用是指定第i+1行的高度,比如:

//将第一行的高度设为200

sheet.setRowView(0,200);

WritableSheet.setColumnView(int i,int width);

作用是指定第i+1列的宽度,比如:

//将第一列的宽度设为30

sheet.setColumnView(0,30);

四、操作图片

public static void write()throws Exception{

WritableWorkbook wwb=Workbook.createWorkbook(new File("c:/1.xls"));

WritableSheet ws=wwb.createSheet("Test Sheet 1",0);

File file=new File("C:\\jbproject\\PVS\\WebRoot\\weekhit\\1109496996281.png");

WritableImage image=new WritableImage(1, 4, 6, 18,file);

ws.addImage(image);

wwb.write();

wwb.close();

}

很简单和插入单元格的方式一样,不过就是参数多了些,WritableImage这个类继承了Draw,上面只是他构造方法的一种,最后一个参数不用了说了,前面四个参数的类型都是double,依次是 x, y, width, height,注意,这里的宽和高可不是图片的宽和高,而是图片所要占的单位格的个数,因为继承的Draw所以他的类型必须是double,具体里面怎么实现的我还没细看:)因为着急赶活,先完成功能,其他的以后有时间慢慢研究。以后会继续写出在使用中的心得给大家。

读:

读的时候是这样的一个思路,先用一个输入流(InputStream)得到Excel文件,然后用jxl中的Workbook得到工作薄,用Sheet从工作薄中得到工作表,用Cell得到工作表中得某个单元格.

InputStream-Workbook-Sheet-Cell,就得到了excel文件中的单元格

代码:

String path="c:\\excel.xls";//Excel文件URL

InputStream is = new FileInputStream(path);//写入到FileInputStream

jxl.Workbook wb = Workbook.getWorkbook(is); //得到工作薄

jxl.Sheet st = wb.getSheet(0);//得到工作薄中的第一个工作表

Cell cell=st.getCell(0,0);//得到工作表的第一个单元格,即A1

String content=cell.getContents();//getContents()将Cell中的字符转为字符串

wb.close();//关闭工作薄

is.close();//关闭输入流

我们可以通过Sheet的getCell(x,y)方法得到任意一个单元格,x,y和excel中的坐标对应.

例如A1对应(0,0),A2对应(0,1),D3对应(3,2).Excel中坐标从A,1开始,jxl中全部是从0开始.

还可以通过Sheet的getRows(),getColumns()方法得到行数列数,并用于循环控制,输出一个sheet中的所有内容.

写:

往Excel中写入内容主要是用jxl.write包中的类.

思路是这样的:

OutputStream-WritableWorkbook-WritableSheet-Label

这里面Label代表的是写入Sheet的Cell位置及内容.

代码:

OutputStream os=new FileOutputStream("c:\\test.xls");//输出的Excel文件URL

WritableWorkbook wwb = Workbook.createWorkbook(os);//创建可写工作薄

WritableSheet ws = wwb.createSheet("sheet1", 0);//创建可写工作表

Label labelCF=new Label(0, 0, "hello");//创建写入位置和内容

ws.addCell(labelCF);//将Label写入sheet中

Label的构造函数Label(int x, int y,String aString)xy意同读的时候的xy,aString是写入的内容.

WritableFont wf = new WritableFont(WritableFont.TIMES, 12, WritableFont.BOLD, false);//设置写入字体

WritableCellFormat wcfF = new WritableCellFormat(wf);//设置CellFormat

Label labelCF=new Label(0, 0, "hello");//创建写入位置,内容和格式

Label的另一构造函数Label(int c, int r, String cont, CellFormat st)可以对写入内容进行格式化,设置字体及其它的属性.

现在可以写了

wwb.write();

写完后关闭

wwb.close();

输出流也关闭吧

os.close;

OK,只要把读和写结合起来,就可以在N个Excel中读取数据写入你希望的Excel新表中,还是比较方便的.

下面是程序一例:

程序代码:sql = "select * from tablename";

rs = stmt.executeQuery(sql);

//新建Excel文件

String filePath=request.getRealPath("aaa.xls");

File myFilePath=new File(filePath);

if(!myFilePath.exists())

myFilePath.createNewFile();

FileWriter resultFile=new FileWriter(myFilePath);

PrintWriter myFile=new PrintWriter(resultFile);

resultFile.close();

//用JXL向新建的文件中添加内容

OutputStream outf = new FileOutputStream(filePath);

jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(outf);

jxl.write.WritableSheet ws = wwb.createSheet("sheettest", 0);

int i=0;

int j=0;

for (int k = 0; k rs.getMetaData().getColumnCount(); k++) {

ws.addCell(new Label(k,0,rs.getMetaData().getColumnName(k+1)));

}

while(rs.next()){

out.println(rs.getMetaData().getColumnCount());

for (int k = 0; k rs.getMetaData().getColumnCount(); k++) {

ws.addCell(new Label(k,j+i+1,rs.getString(k+1)));

}

i++;

}

wwb.write();

wwb.close();

}catch(Exception e)

finally{

rs.close();

conn.close();

}

response.sendRedirect("aaa.xls");

「java中表格有什么操作」javaswing表格

如何用 Java 绘制表格

JTable单元格是由单元格绘制器绘制出来的,这是一些执行TableCellRenderer接口的类。TableCellRenderer接口定义了唯一的getTableCellRendererComponent方法,返回对Component的引用,二Component则用来实现绘图操作。但是因为定义单独的类来执行TableCellRenderer比较方便,而且可以实现绘图操作,所以TablecellRenderer通常只返回对自己的引用。下面是传递给getTableCellRendererComponent()方法的几个参数:

对JTable的引用,含有要绘制的单元格

对单元格值的引用

boolean标记,用来表示单元格是否被选中

boolean标记,用来表示单元格是否为输入焦点

绘制的单元格的行索引号

绘制的单元格的列索引号

如何在Java中操作Excel

POI对excel的支持算是好的了。

但也没有你说的那样打印,预览,功能。

如果是应用程序,不是很好处理。

如果是web程序,可以如下处理。

1.在后台用POI类库生成excel。

2.用流的方式,将生成的excel传递给前台浏览器,在浏览器中打开。

3.使用浏览器的打印功能来进行打印。

Java操作Excel完美解决方案

只要有表格 就会有Microsoft Excel 用Microsoft Excel处理数据已成为不少人的习惯 Jakarta POI API就为Java程序员提供了一条存取Microsoft文档格式的神奇之路 其中最成熟的就是能存取Microsoft Excel文档的HSSF API 本篇文章就举例示范如何利用Java 创建和读取Excel文档 并设置单元格的字体和格式 为了保证示例程序的运行 必须安装Java sdk 和Jakarta POI Jakarta POI的Web站点是: 创建Excel 文档 示例 将演示如何利用Jakarta POI API 创建Excel 文档 示例 程序如下 import apache poi hssf usermodel HSSFWorkbook;import apache poi hssf usermodel HSSFSheet;import apache poi hssf usermodel HSSFRow;import apache poi hssf usermodel HSSFCell;import java io FileOutputStream;public class CreateXL { /** Excel 文件要存放的位置 假定在D盘JTest目录下*/ public static String outputFile= D:/JTest/ gongye xls ; public static void main(String argv[]){ try{// 创建新的Excel 工作簿HSSFWorkbook workbook = new HSSFWorkbook();// 在Excel工作簿中建一工作表 其名为缺省值// 如要新建一名为 效益指标 的工作表 其语句为 // HSSFSheet sheet = workbook createSheet( 效益指标 );HSSFSheet sheet = workbook createSheet();// 在索引 的位置创建行(最顶端的行)HSSFRow row = sheet createRow((short) );//在索引 的位置创建单元格(左上端)HSSFCell cell = row createCell((short) );// 定义单元格为字符串类型cell setCellType(HSSFCell CELL_TYPE_STRING);// 在单元格中输入一些内容cell setCellValue( 增加值 );// 新建一输出文件流FileOutputStream fOut = new FileOutputStream(outputFile);// 把相应的Excel 工作簿存盘workbook write(fOut);fOut flush();// 操作结束 关闭文件fOut close();System out println( 文件生成 ); }catch(Exception e) {System out println( 已运行 xlCreate() : + e ); }}} 读取Excel文档中的数据 示例 将演示如何读取Excel文档中的数据 假定在D盘JTest目录下有一个文件名为gongye xls的Excel文件 示例 程序如下 import apache poi hssf usermodel HSSFWorkbook;import apache poi hssf usermodel HSSFSheet;import apache poi hssf usermodel HSSFRow;import apache poi hssf usermodel HSSFCell;import java io FileInputStream;public class ReadXL { /** Excel文件的存放位置 注意是正斜线*/ public static String fileToBeRead= D:/JTest/ gongye xls ; public static void main(String argv[]){  try{// 创建对Excel工作簿文件的引用HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));// 创建对工作表的引用 // 本例是按名引用(让我们假定那张表有着缺省名 Sheet )HSSFSheet sheet = workbook getSheet( Sheet );// 也可用getSheetAt(int index)按索引引用 // 在Excel文档中 第一张工作表的缺省索引是 // 其语句为 HSSFSheet sheet = workbook getSheetAt( );// 读取左上端单元HSSFRow row = sheet getRow( );HSSFCell cell = row getCell((short) );// 输出单元内容 cell getStringCellValue()就是取所在单元的值System out println( 左上端单元是 + cell getStringCellValue());  }catch(Exception e) {System out println( 已运行xlRead() : + e ); }}} 设置单元格格式 在这里 我们将只介绍一些和格式设置有关的语句 我们假定workbook就是对一个工作簿的引用 在Java中 第一步要做的就是创建和设置字体和单元格的格式 然后再应用这些格式 创建字体 设置其为红色 粗体 HSSFFont font = workbook createFont();font setColor(HSSFFont COLOR_RED);font setBoldweight(HSSFFont BOLDWEIGHT_BOLD); 创建格式 HSSFCellStyle cellStyle= workbook createCellStyle();cellStyle setFont(font); 应用格式 HSSFCell cell = row createCell((short) );cell setCellStyle(cellStyle);cell setCellType(HSSFCell CELL_TYPE_STRING);cell setCellValue( 标题 ); 总之 如本篇文章所演示的一样 Java程序员不必担心Excel工作表中的数据了 利用Jakarta POI API 我们就可以轻易的在程序中存取Excel文档 lishixinzhi/Article/program/Java/JSP/201311/19396

java中表格有什么操作的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于javaswing表格、java中表格有什么操作的信息别忘了在本站进行查找喔。

The End

发布于:2023-03-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。