poi导出excel为只读属性

poi导出excel为只读属性,第1张

Workbook work = Workbook.getWorkbook(new File("D://test.xsl"))//Excel获得文件

WritableWorkbook book = Workbook.createWorkbook(new File("D://test.xsl"))//这个是创建excel

上面你选择你 得到 book的方式

WritableSheet sheet = book.getSheet(0)

sheet.getSettings().setProtected(true)

这样是锁上了整个excel

sheet.getSettings().setPassword("12345678")

这个是解锁的时候所设置的密码

望采纳

你可以用jxl架包来 *** 作,如果你没有jxl可以找我,我给你传一个。我这有段jxl *** 作excel的代码,你可以参考下,有啥不清楚的也可以找我,希望对你有帮助。

public class ExcelDemo {

/**

* 写入 Xls 文件

* @throws IOException

* @throws WriteException

* @throws RowsExceededException

*/

private static void writerExcel() throws Exception {

WritableWorkbook book = Workbook.createWorkbook(new File("D:\\Book3.xls"))// 创建可以写的book文件对象

WritableSheet sheet = book.createSheet("qy", 0)// 在book3.xls中创建一个sheet,名称为'qy',从第一列开始插入

int i = 0

while (i != 10) {

// 设置第一列写入的内容

Label l = new Label(0, i, "第一列:" + i)

// 设置列的宽度

sheet.setColumnView(0, 50)

sheet.setColumnView(1, 100)

sheet.addCell(l)

// 设置第二列写入的内容

l = new Label(1, i, "第二列:" + i)

sheet.addCell(l)

i++

}

// 写入ecxel

book.write()

// 一定要关闭,否则不写入

book.close()

System.out.println("创建book3成功,并且写入数据成功......")

}

/**

* 读写 Xls 文件

*/

@SuppressWarnings("unused")

private static void ReadAndWriteExcel() throws Exception {

Workbook workBook = null

// 构建Workbook对象 只读Workbook对象

// 直接从本地文件创建Workbook

// 从输入流创建Workbook

InputStream inputStream = new FileInputStream("D:\\Book1.xls")

workBook = Workbook.getWorkbook(inputStream)

// Sheet(术语:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中

// Sheet的下标是从0开始的

// 获取第一张Sheet表

Sheet sheets = workBook.getSheet(0)

// 获取Sheet表中所包含的总列数

int sheetColumns = sheets.getColumns()

// 获取Sheet表中所包含的总行数

int sheetRows = sheets.getRows()

// 获取指这下单元格的对象引用

for (int i = 0i <sheetRowsi++) {

for (int j = 0j <sheetColumnsj++) {

// 注意在读取时 i和j的位置。i代表行 j代表列。且列在前 行在后

Cell cell = sheets.getCell(j, i)

System.out.print(cell.getContents() + " ")

}

System.out.println()

}

// 利用已经创建的Excel工作薄创建新的可写入的Excel工作薄

WritableWorkbook wwb = Workbook.createWorkbook(new File("D:\\Book2.xls"), workBook)

// 读取第一张工作表

WritableSheet ws = wwb.getSheet(0)

// 获取第一个单元格对象

WritableCell wc = ws.getWritableCell(0, 0)

// 决断单元格的类型,做出相应的转化

if (wc.getType() == CellType.LABEL) {

Label l = (Label) wc

l.setString("The value has been modified.")

}

// 写入Excel对象

wwb.write()

wwb.close()

// *** 作完成时,关闭对象,翻译占用的内存空间

workBook.close()

}

/**

* 读取 Xls 文件内容

*/

@SuppressWarnings("unused")

private static void readExcelFile() throws Exception {

// 创建工作簿对象

File excelFile = new File("D:\\Book2.xls")

Workbook workBook = Workbook.getWorkbook(excelFile)

// 得到工作簿所有的工作表对象

Sheet[] sheets = workBook.getSheets()

// 遍历所有行

for (int i = 0i <sheets[0].getRows()i++) {

// 得到所有列,在输出列中的内容

Cell[] cells = sheets[0].getRow(i)

for (int j = 0j <cells.lengthj++) {

System.out.print(cells[j].getContents() + " ")

}

System.out.println()

}

}

public static void main(String[] args) throws Exception {

readExcelFile()

ReadAndWriteExcel()

writerExcel()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/7869104.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存