poi生成word设置只读 poi word 只读 - 电脑|办公 - 电脑办公-杀毒安全-网络-V3学习网
微商网
 
 
导航:首页 |电脑|办公|正文

poi生成word设置只读 poi word 只读

时间:2021-04-13 12:12:48
使用poi导出excel表格,为什么生成的excel表格是只读的,如何在使用 public class CreateWordDemo { public void createDocContext
作者:

poi生成word设置只读

使用poi导出excel表格,为什么生成的excel表格是只读的,如何在使用...

public class CreateWordDemo { public void createDocContext(String file) throws DocumentException,IOException { // 设置纸张大小 Document document = new Document(PageSize.A4); // 建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中 RtfWriter2.getInstance(document, new FileOutputStream(file)); document.open(); // 设置中文字体 BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED); // 标题字体风格 Font titleFont = new Font(bfChinese, 12,Font.BOLD); // 正文字体风格 Font contextFont = new Font(bfChinese, 10,Font.NORMAL); Paragraph title = new Paragraph("标题"); // 设置标题格式对齐方式 title.setAlignment(Element.ALIGN_CENTER); title.setFont(titleFont); document.add(title); String contextString ="iText是一个能够快速产生PDF文件的java类库。

" + " \n"// 换行 +"iText的java类对于那些要产生包含文本," + "表格,图形的只读文档是很有用的。

它的类库尤其与java Servlet有很好的给合。

" +"使用iText与PDF能够使你正确的控制Servlet的输出。

"; Paragraph context = new Paragraph(contextString); // 正文格式左对齐 context.setAlignment(Element.ALIGN_LEFT); context.setFont(contextFont); // 离上一段落(标题)空的行数 context.setSpacingBefore(5); // 设置第一行空的列数 context.setFirstLineIndent(20); document.add(context); // 利用类FontFactory结合Font和Color可以设置各种各样字体样式 Paragraph underline = new Paragraph("下划线的实现",FontFactory.getFont( FontFactory.HELVETICA_BOLDOBLIQUE, 18,Font.UNDERLINE, new Color(0, 0,255))); document.add(underline); // 设置 Table 表格 Table aTable = new Table(3); int width[] = { 25, 25, 50 }; aTable.setWidths(width);// 设置每列所占比例 aTable.setWidth(90); // 占页面宽度90% aTable.setAlignment(Element.ALIGN_CENTER);// 居中显示 aTable.setAlignment(Element.ALIGN_MIDDLE);// 纵向居中显示 aTable.setAutoFillEmptyCells(true); // 自动填满 aTable.setBorderWidth(1); // 边框宽度 aTable.setBorderColor(new Color(0, 125, 255)); // 边框颜色 aTable.setPadding(2);// 衬距,看效果就知道什么意思了 aTable.setSpacing(3);// 即单元格之间的间距 aTable.setBorder(2);// 边框 // 设置表头 Cell haderCell = new Cell("表格表头"); haderCell.setHeader(true); haderCell.setColspan(3); aTable.addCell(haderCell); aTable.endHeaders(); Font fontChinese = new Font(bfChinese, 12, Font.NORMAL,Color.GREEN); Cell cell = new Cell(new Phrase("这是一个测试的 3*3 Table 数据",fontChinese)); cell.setVerticalAlignment(Element.ALIGN_TOP); cell.setBorderColor(new Color(255, 0,0)); cell.setRowspan(2); aTable.addCell(cell); aTable.addCell(new Cell("#1")); aTable.addCell(new Cell("#2")); aTable.addCell(new Cell("#3")); aTable.addCell(new Cell("#4")); Cell cell3 = new Cell(new Phrase("一行三列数据",fontChinese)); cell3.setColspan(3); cell3.setVerticalAlignment(Element.ALIGN_CENTER); aTable.addCell(cell3); document.add(aTable); document.add(new Paragraph("\n")); // 添加图片 Image.getInstance即可以放路径又可以放二进制字节流 Image img = Image.getInstance("d:\\img01800.jpg"); img.setAbsolutePosition(0,0); img.setAlignment(Image.RIGHT);// 设置图片显示位置 img.scaleAbsolute(60, 60);// 直接设定显示尺寸 // img.scalePercent(50);//表示显示的大小为原尺寸的50% // img.scalePercent(25,12);//图像高宽的显示比例 // img.setRotation(30);//图像旋转一定角度 document.add(img); document.close(); } public static void main(String[] args) { CreateWordDemo word = new CreateWordDemo(); String file ="d:/demo1.doc"; try { word.createDocContext(file); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }

java 导出word格式设置 内容只读

第一步:打开编辑好的Word文档第二步:选择“工具--保护文档”,在右侧弹出的“保护文档”对话框中勾选上“编辑限制”下面的“仅允许在文档中进行此类编辑”选项,勾选后会激活下面的下拉框,在其中选择“填写窗体”。

形象的表示,即:工具→保护文档→钩选“编辑限制”→在下拉列表中选择“填写窗体”→点击“是,启动强制保护”→输入密码→确定。

第三步:点击下面的“是,启动强制保护”按钮输入密码。

到这里我们就禁止了Word文档内容的复制。

如果以后我们自己酏要解除禁止,可以按照以下顺序操作:选择“工具--取消文档保护”,在打开的对话框中输入先前设置好的密码就解除禁止了。

缺点是,用记事本打开或另存为网页后就能复制了。

用poi写excel导入数据时,只读的数据不显示是怎么回事

你可以用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 = 0; i for (int j = 0; j // 注意在读取时 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 = 0; i // 得到所有列,在输出列中的内容 Cell[] cells = sheets[0].getRow(i); for (int j = 0; j System.out.print(cells[j].getContents() + " "); } System.out.println(); } } public static void main(String[] args) throws Exception { readExcelFile(); ReadAndWriteExcel(); writerExcel(); } }

java poi导出word 可以设置格式吗

1. 读取word 2003及word 2007需要的jar包2. 读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi-3.5-beta6-.jar 和 poi-scratchpad-3.5-beta6-.jar 两个 jar 包即可, 而 2007 版本(.docx)就麻烦多,我说的这个麻烦不是我们写代码的时候麻烦,是要导入的 jar 包比较的多,有如下 7 个之多:3. 1. openxml4j-bin-beta.jar4. 2. poi-3.5-beta6-.jar5. 3. poi-ooxml-3.5-beta6-.jar6. 4 .dom4j-1.6.1.jar7. 5. geronimo-stax-api_1.0_spec-1.0.jar8. 6. ooxml-schemas-1.0.jar9. 7. xmlbeans-2.3.0.jar10. 其中 4-7 是 poi-ooxml-3.5-beta6-.jar 所依赖的 jar 包(在 poi-bin-3.5-beta6-.tar.gz 中的 ooxml-lib 目录下可以找到)。

11. 2.换行符号12. 硬换行:文件中换行,如果是键盘中使用了"enter"的换行。

13. 软换行:文件中一行的字符数容量有限,当字符数量超过一定值时,会自动切到下行显示。

14. 对程序来说,硬换行才是可以识别的、确定的换行,软换行与字体大小、缩进有关。

15. 3.读取的注意事项16. 值得注意的是: POI 在读取不会读取 word 文件中的图片信息; 还有就是对于 2007 版的 word(.docx), 如果 word 文件中有表格,所有表格中的数据都会在读取出来的字符串的最后。

17. 4.读取word文本内容代码1 import java.io.File;2 import java.io.FileInputStream;3 import java.io.InputStream;4 5 import org.apache.poi.POIXMLDocument;6 import org.apache.poi.POIXMLTextExtractor;7 import org.apache.poi.hwpf.extractor.WordExtractor;8 import org.apache.poi.openxml4j.opc.OPCPackage;9 import org.apache.poi.xwpf.extractor.XWPFWordExtractor;10 11 public class Test {12 public static void main(String[] args) {13 try {14 InputStream is = new FileInputStream(new File("2003.doc"));15 WordExtractor ex = new WordExtractor(is);16 String text2003 = ex.getText();17 System.out.println(text2003);18 19 OPCPackage opcPackage = POIXMLDocument.openPackage("2007.docx");20 POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);21 String text2007 = extractor.getText();22 System.out.println(text2007);23 24 } catch (Exception e) {25 e.printStackTrace();26 }27 }28 }

怎么给WORD文档设置只读权限

给WORD文档设置只读权限方法:第一步:打开编辑好的Word文档第二步:选择“工具--保护文档”,在右侧弹出的“保护文档”对话框中勾选上“编辑限制”下面的“仅允许在文档中进行此类编辑”选项,勾选后会激活下面的下拉框,在其中选择“填写窗体”。

形象的表示,即:工具→保护文档→钩选“编辑限制”→在下拉列表中选择“填写窗体”→点击“是,启动强制保护”→输入密码→确定。

第三步:点击下面的“是,启动强制保护”按钮输入密码。

要解除禁止操作:选择“工具--取消文档保护”,在打开的对话框中输入先前设置好的密码就解除禁止了。

...

怎样将word文档设置成只读模式

不知道你是每次新建都修改不了还是一个文档修改不了,只好猜猜看。

据我了解,应该有以下几种可能:1、是你的文档设置了只读属性,不允许修改文档的属性,这个一般只是单个文档,不会是所有word创建的文档;2、是你的文档加了安全保护,包括限制格式和编辑、限制访问、管理凭据等,这样的话你的文档都是受保护的,不允许修改;3、是你的文档使用模板创建的,在模板里面设定了文档的属性,所以只要你使用这种模板就修改不了模板定义好的东西;4、安装的时候需要填写公司和用户信息或者会默认,是不是默认的能修改,填写的就不能修改?这个听起来很牵强O(∩_∩)O~你自己试试看,有问题可以找我,跟你一起研究,祝你好运O(∩_∩)O~!

大家还关注
阅读排行
推荐阅读