我正在使用ApachePOI将数据写入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文件的第一行?
这是我的工作
if(y==0) {
unlockedCellStyle.setLocked(true);
sheet.lockFormatCells(true);
sheet.enableLocking();
}else {
unlockedCellStyle.setLocked(false);
sheet.lockFormatCells(false);
sheet.enableLocking();
}
cell.setCellStyle(unlockedCellStyle);
问题内容: 我正在使用Criteria API检索hibernate中的对象列表。但是,我需要锁定那些对象,因为同时执行的另一个线程将获得确切的对象,并且在没有悲观锁定的情况下,只有一个线程会成功。 我尝试如下,但它不起作用。 更新 :我正在执行此语句之后的更新,以便我希望两个线程都读取不同的行,或者至少第二个线程应该等到第一个线程完成事务并离开锁。 hibernate生成的查询如下。 更新 :这
问题内容: 我希望以下测试仅打印“已被锁定”一次。但是它因此会打印行。 据我了解,将在可能的情况下将其锁定(即,如果尚未锁定)。但是显然不是这样。 如何设置这样的锁线程安全? 问题答案: 名称为,表示您已经拥有锁了。 如果希望使用线程块,则可以使用例如具有1(或更多)许可的a。
嗨,我想在第一行搜索一个字符串,如果找到了,我想移动那一列。
问题内容: 我有一张带桌子的桌子。 我需要访问并递增。 在访问期间,我需要锁定特定的用户行(而不是整个表)。 我该怎么做呢? 表格类型为。 问题答案: MySQL仅使用MyISAM表中的表级锁定。如果可以,请切换到InnoDB进行行级锁定。 这是指向MySQL网站的链接,该链接描述了由SQL语句为InnoDB表设置的锁。 http://dev.mysql.com/doc/refman/5.0/en
问题内容: UNIX文件锁定非常简单:操作系统假定您知道自己在做什么,然后就可以按照自己的意愿进行操作: 例如,如果您尝试删除另一个进程已打开的文件,则操作系统通常会允许您执行此操作。原始进程仍将保留其文件句柄,直到它终止-这时文件系统将安静地回收磁盘资源。不用大惊小怪,这就是我喜欢的方式。 Windows上的不同之处:如果我尝试删除另一个进程正在使用的文件,则会出现操作系统错误。在原始进程释放它
问题内容: 我有一个C#/ Selenium / Specflow测试套件,正在使用xunit.console.exe使用Jenkins运行。我需要将这些测试指向不同的环境(Test / QA / Prod等),并想使用命令行参数。 我正在调用的批处理命令是: 并希望包含一个额外的参数,例如: “ -env = PROD”, 以将该作业指向特定的环境。 我愿意采取更好的方法。 问题答案: 对于此解