我正在使用Apache POI将数据写入Excel文件,我想让第一行只读,其他行可以随时编辑 . 但我没有找到解决它的有效方法 .
以下是我的代码:
public static void createExcel(){
HSSFWorkbook workbook=new HSSFWorkbook();
HSSFSheet sheet=workbook.createSheet("Variable");
CellStyle lockStyle=workbook.createCellStyle();
lockStyle.setLocked(true);
CellStyle unlockStyle=workbook.createCellStyle();
unlockStyle.setLocked(false);
sheet.protectSheet("www.hirain.com");
for(int i=0;i<=20;i++){
Row row=sheet.createRow(i);
if(i==0){
row.setRowStyle(lockStyle);
}else{
row.setRowStyle(unlockStyle);
}
Cell c1=row.createCell(0);
Cell c2=row.createCell(1);
c1.setCellValue((char)i);
c2.setCellValue(String.valueOf((char)(65+i)));
}
try {
OutputStream out=new FileOutputStream(new File("D:\\test.xls"));
workbook.write(out);
out.flush();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("=========export excel success=========");
}
看来这个java代码块应该可以工作,但实际上它不仅会锁定第一行,还会锁定其他行中的空单元格 .
所以我想知道是否有一种有效的方法只使用apachepoi锁定excel文件的第一行?