8

私は Apache POI を使用して、クライアントがダウンロードし、値を追加してアップロードできる Excel Templete を生成しています。

テンプレートヘッダーを編集できないように、セル値を編集不可に設定したいと思います。

このコードを試しましたが、うまくいきません。

    cell.getCellStyle().setLocked(true)

また、Excelシートをロックしてから列をsetlocked(false)にできるようにすることもできますが、クライアントが入力する列の数がわからないので、入力した列を除いて他のすべての列を編集しないでください。 Apache POI で動的に。

私の質問が明確に理解できることを願っています。

4

2 に答える 2

3

次のコードを試してください。問題が解決する場合があります。

HSSFWorkbook workbook = new XSSFWorkbook(); 

// Cell styles. Note the setLocked(true) method call. 
HSSFCellStyle lockedNumericStyle = workbook.createCellStyle(); 
lockedNumericStyle.setAlignment(XSSFCellStyle.ALIGN_RIGHT); 
lockedNumericStyle.setLocked(true); 

HSSFSheet sheet = workbook.createSheet("Protection Test"); 
HSSFRow row = sheet.createRow(0); 
HSSFCell cell = row.createCell(0); 
cell.setCellValue(100); 
cell.setCellStyle(lockedNumericStyle); 

// This line should cause all locked cells to be protected, 
// the user should not be able to change the cells 
// contents. 
sheet.protectSheet("password"); 

The password makes it possible to remove the protection from the sheet and makes it possible then for the locked cells to be modified. 
于 2016-03-08T12:13:01.023 に答える
0

これがどれほどうまく機能するかは覚えていません-たとえば、クライアントはメニューを使用してシートの保護を解除できると思います-しかし、シートを次のような方法で保護する必要がありますSheet.protectSheet("")(パスワードはありませんが、保護されたシートです)。

于 2013-09-13T02:55:20.523 に答える