1 场景描述
Poi操作Excel中的一些单元格受保护,一些可编辑,如何实现?
2 源码实现
先设置sheet受保护,再设置一些单元格样式为可编辑
import java.io.FileOutputStream;
import lombok.SneakyThrows;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class TestProtectedCell {
@SneakyThrows
public static void main(String[] args) {
String file = "D:\\poiProtectedCellTest.xlsx";
FileOutputStream outputStream = new FileOutputStream(file);
Workbook wb = new XSSFWorkbook();
//可编辑的单元格样式
CellStyle unlockedCellStyle = wb.createCellStyle();
unlockedCellStyle.setLocked(false);
Sheet sheet = wb.createSheet();
sheet.protectSheet("123456");//password。
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("TEST");
//设置单元格样式:可编辑
cell.setCellStyle(unlockedCellStyle);
wb.write(outputStream);
outputStream.close();
}
}