求java代码,修改excel中某一列的值
比如D盘有个a.xls的表格,其中一列的值不对。已写好另一个方法,从数据库中查出正确的一列值。怎么将新的值替换旧的。需要详细代码。...
比如D盘有个a.xls的表格,其中一列的值不对。已写好另一个方法,从数据库中查出正确的一列值。怎么将新的值替换旧的。需要详细代码。
展开
1个回答
展开全部
给你个我以前写的小例子好了
怎么也得改改才好用,是用的jxl的库,你可以从网上下载一个jxl.jar导到你的项目里
看看它的API有不少例子,好像是韩国人写的写点小东西还好有BUG,大项目的话用apache的POI
public class exportEXL {
String fileName= "F:\\NumberProcessed.xls";
String sheetName ="sheet";
private int location = 1;
public void ExportFile(int[] arr) throws WriteException, IOException{
WritableWorkbook wwb = null;
//字体设置,全部参数集中于format变量中
WritableFont wf = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false);
DisplayFormat displayFormat = NumberFormats.INTEGER;
WritableCellFormat format = new WritableCellFormat(wf,displayFormat);
format.setAlignment(jxl.format.Alignment.RIGHT);
format.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.NONE);
try {
// 创建可写入的工作簿对象
wwb = Workbook.createWorkbook(new File(fileName));
if (wwb != null) {
// 在工作簿里创建可写入的工作表,第一个参数为工作表名,第二个参数为该工作表的所在位置
WritableSheet ws = wwb.createSheet(sheetName, location);
if (ws != null) {
/* 添加表结构 */
for(int j =1;j<=93;j++){
for(int i=0;i<arr.length;i++)
{
//number参数中第一个参数是列,从零开始
//第二个参数是行,从零开始,此程序中每隔75行重复一次
jxl.write.Number number = new jxl.write.Number(0,
i+(j-1)*arr.length,
Integer.parseInt(Integer.toString(arr[i])),format);
//写入单元格
ws.addCell(number);
arr[i] = arr[i]+500;
}
}
}
}
// 从内存中写入到文件
wwb.write();
System.out.println("路径为:" + fileName + "的工作簿写入数据成功!");
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
wwb.close();
}
}
}
追问
我没太看懂for循环里写的是什么?
追答
jxl.write.Number(int c, int r, double val, CellFormat st);
数字型单元格,number构造函数是上面这个,形参c是列(columns),r是行(rows)
第三个参数val是单元格的值,最后一个是格式信息,在代码第一个注释后面
简单的说 ws.addCell(number);这句话是添加单元格的,这句话没有接收单元格位置信息
因为这些信息都在构造Number的时候添加了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |