jxl 操作Excel表

求道者 2011-09-15 10:41:30
现有一个表 想把其他的数据添加到这个表中, 而不是重新建表,如何实现?高分求答
...全文
117 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
完美灬缺陷 2011-09-15
  • 打赏
  • 举报
回复
 /**
* <一句话功能简述> 向EXl文件中写入一行
* <功能详细描述>
* @param wb HSSFWorkbook
* @param strings 写入的字符串
* @param lineNum 写入的行号
* @param isTitle [参数说明] 是否是title
* @see [类、类#方法、类#成员]
*/
public void writeLine(HSSFWorkbook wb, String[] strings, int lineNum,
boolean isTitle)
{
HSSFSheet sheet = null;
try
{
sheet = wb.getSheetAt(0);
}
catch (Exception e)
{
sheet = wb.createSheet("TaskzUpgradeReport");
}
HSSFRow hssfRow = sheet.createRow(lineNum);
HSSFCellStyle cellStyle1 = wb.createCellStyle();
if (isTitle)
{
//设置标题的背景色
cellStyle1.setFillForegroundColor(HSSFColor.LIGHT_YELLOW.index);
cellStyle1.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

HSSFFont font2 = wb.createFont();

//设置标题的字体
final short fontCode2 = 0x64;
font2.setBoldweight(fontCode2);
cellStyle1.setFont(font2);
cellStyle1.setBorderBottom(HSSFCellStyle.BORDER_THIN);
cellStyle1.setBorderLeft(HSSFCellStyle.BORDER_THIN);
cellStyle1.setBorderRight(HSSFCellStyle.BORDER_THIN);
cellStyle1.setBorderTop(HSSFCellStyle.BORDER_THIN);
}
//设置行高
final short height = 0x249;
hssfRow.setHeight(height);
int length = strings.length;
HSSFCell hssfCell = null;
for (int index = 0; index < length; index++)
{
// 创建列
hssfCell = hssfRow.createCell((short)index);
//此单元格设置列风格
hssfCell.setCellStyle(cellStyle1);

//为单元格赋值
hssfCell.setCellValue(new HSSFRichTextString(strings[index]));
sheet.setColumnWidth((short)index, COLUMN_WEITH);
}
}
awusoft 2011-09-15
  • 打赏
  • 举报
回复
读取到有多少行,然后从这一行数开始插入行....
look85927 2011-09-15
  • 打赏
  • 举报
回复
//通过Workbook的静态方法getWorkbook选取Excel文件

Workbook workbook = Workbook.getWorkbook(new File("myfile.xls"));

//通过Workbook的getSheet方法选择第一个工作簿(从0开始)

Sheet sheet = workbook.getSheet(0);

//通过Sheet方法的getCell方法选择位置为C2的单元格(两个参数都从0开始)

Cell c2 = sheet.getCell(2,1);

//通过Cell的getContents方法把单元格中的信息以字符的形式读取出来

String stringc2 = c2.getContents();

可以看到正是刚才所说的四个步骤。

我们都知道Excel单元格是有格式的,那么这些信息如何取得。

Cell提供了一个getType方法能够返回单元格的类型信息,同时JXL提供了一个CellType类用来预设Excel中的类型信息,而且JXL提供了一些Cell类的子类用来分别用来表示各种类型的单元格,如LabelCell,NumberCell,DateCell分别表示字符、数值、日期类型的单元格。所以我们可以这样写:

if (c2.getType() == CellType.NUMBER)
{
NumberCell nc = (NumberCell) c2;
numberb2 = nc.getValue();
}

最后不要忘记关闭workbook以释放资源:

workbook.close();

现在总结一下:三个对象,四个步骤,注意格式。就可以轻松的从Excel文件中读取数据.
求道者 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 softroad 的回复:]
引用 11 楼 z410970953 的回复:

引用 9 楼 softroad 的回复:
没办法读的时候修改源文件吧,至少我没找到方法。不知道jxl能操作公式不,poi可以操作公式的。

能否实现向已存在的表中添加数据?


我觉得不可行吧。
[/Quote]我也正在找方法 不知道行不行哦
安心逍遥 2011-09-15
  • 打赏
  • 举报
回复
呵呵,没用过这个
TKD03072010 2011-09-15
  • 打赏
  • 举报
回复
softroad 2011-09-15
  • 打赏
  • 举报
回复
咋不说话了?
softroad 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 z410970953 的回复:]

引用 9 楼 softroad 的回复:
没办法读的时候修改源文件吧,至少我没找到方法。不知道jxl能操作公式不,poi可以操作公式的。

能否实现向已存在的表中添加数据?
[/Quote]

我觉得不可行吧。
求道者 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 softroad 的回复:]
没办法读的时候修改源文件吧,至少我没找到方法。不知道jxl能操作公式不,poi可以操作公式的。
[/Quote]
能否实现向已存在的表中添加数据?
求道者 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 leehomwong 的回复:]
那就新建一个,把所有的都写进去后吧原先的删了,再把新建的那个重命名下
[/Quote] 意思也就是 如何向一个存在的表中 添加数据. 直接赋给它空 就可以实现清空了吧?
softroad 2011-09-15
  • 打赏
  • 举报
回复
没办法读的时候修改源文件吧,至少我没找到方法。不知道jxl能操作公式不,poi可以操作公式的。
求道者 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 softroad 的回复:]
如何实现把存有数据的123.xls文件中的数据全部清除

那不就是删了123.xls, 然后从新写个?
[/Quote]不是删了 这个文件里面有二个表 这二个表中间还有函数关系
24K純帥 2011-09-15
  • 打赏
  • 举报
回复
那就新建一个,把所有的都写进去后吧原先的删了,再把新建的那个重命名下
softroad 2011-09-15
  • 打赏
  • 举报
回复
如何实现把存有数据的123.xls文件中的数据全部清除

那不就是删了123.xls, 然后从新写个?
aqqbjlgu 2011-09-15
  • 打赏
  • 举报
回复
一般来说,新生成一个指向同一文件的流对象,就会把原来的文件覆盖的!
求道者 2011-09-15
  • 打赏
  • 举报
回复
你们的回答好像都和要求不符合,我的意思是 我在D盘下已经存在了123.xls文件,并且这个123.xls文件里面还有数据,比如我从数据库里面取出的数据,如何实现把存有数据的123.xls文件中的数据全部清除,并且把从数据库中取出的数据放到这个123.xls文件中去 ?希望高手解答,在线等 急急 解决立即给分.

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧