求java代码,修改excel中某一列的值

比如D盘有个a.xls的表格,其中一列的值不对。已写好另一个方法,从数据库中查出正确的一列值。怎么将新的值替换旧的。需要详细代码。... 比如D盘有个a.xls的表格,其中一列的值不对。已写好另一个方法,从数据库中查出正确的一列值。怎么将新的值替换旧的。需要详细代码。 展开
 我来答
A天天泡面A
推荐于2016-09-22 · 超过19用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:54.5万
展开全部

给你个我以前写的小例子好了

怎么也得改改才好用,是用的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的时候添加了

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式