博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java操作Excel、word和pdf
阅读量:6703 次
发布时间:2019-06-25

本文共 5997 字,大约阅读时间需要 19 分钟。

hot3.png

有些时候我们需要读写excel和word,或者将文字转为pdf那我们应该怎么做呢?

如果需要读写excel需要添加包:

org.apache.poi
poi-ooxml
3.15

如果需要读写word需要添加包:

org.apache.poi
poi-scratchpad
3.15

如果需要操作pdf,需要添加pdf,需要添加:

com.itextpdf
itextpdf
5.5.10
com.itextpdf
itext-asian
5.2.0
org.bouncycastle
bcprov-jdk15on
1.54

然后是如何在代码中操作excel:

/** * @author panmingshuai * @description  * @Time 2018年4月2日  下午4:29:08 * */public class ExcelTest {	@SuppressWarnings("resource")	public static void main(String[] args) throws Exception {		/**		 * 读取excel		 *///		FileInputStream in = new FileInputStream(new File("E:\\mz.xlsx"));		//读取xlsx的excel//		XSSFWorkbook workbook = new XSSFWorkbook(in);		//读取xls的excel//		HSSFWorkbook workbook = new HSSFWorkbook(in);				//循环遍历excel表//		for(int i=0; i

至于代码的意义,注释已经很详细了。

接下来是操作word:

/** * @author panmingshuai * @description * @Time 2018年4月2日 下午5:46:30 * */public class WordTest {	@SuppressWarnings("resource")	public static void main(String[] args) throws Exception {		/**		 * 读取doc文档		 */		// FileInputStream in = FileUtils.openInputStream(new		// File("E:\\qwe.doc"));		// HWPFDocument doc = new HWPFDocument(in);		// Range range = doc.getRange();		// for(int i=0; i

然后是操作pdf:

/** * @author panmingshuai * @description  * @Time 2018年4月3日  上午10:27:10 * */public class PdfTest {	public static void main(String[] args) throws Exception {		// 1、新建document对象        Document document = new Document();                // 2、建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。        // 创建 PdfWriter 对象 第一个参数是对文档对象的引用,第二个参数是文件的实际名称,在该名称中还会给出其输出路径。        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("E:\\pan.pdf"));                        // 给PDF文件设置密码,需要引入bcprov-jdk15on.jar包        //用户密码        String userPassword = "123456";        //拥有者密码(可以编辑pdf,例如插入页眉之类的)        String ownerPassword = "pan";        writer.setEncryption(userPassword.getBytes(), ownerPassword.getBytes(), PdfWriter.ALLOW_PRINTING,PdfWriter.ENCRYPTION_AES_128);                //3、打开文档        document.open();                        //4、PDF中设置段落样式,输出中文内容,必须引入itext-asian.jar        //中文字体,解决中文不能显示问题        BaseFont bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);                //蓝色字体        Font blueFont = new Font(bfChinese);        blueFont.setColor(BaseColor.BLUE);        //段落文本        Paragraph paragraphBlue = new Paragraph("蓝色段落", blueFont);        document.add(paragraphBlue);             //绿色字体        Font greenFont = new Font(bfChinese);        greenFont.setColor(BaseColor.GREEN);        //创建章节(会另起一页)        Paragraph chapterTitle = new Paragraph("段落标题xxxx", greenFont);        Chapter chapter1 = new Chapter(chapterTitle, 1);        chapter1.setNumberDepth(0);               Paragraph sectionTitle = new Paragraph("部分标题", greenFont);        Section section1 = chapter1.addSection(sectionTitle);             Paragraph sectionContent = new Paragraph("部分内容", blueFont);        section1.add(sectionContent);                //将章节添加到文章中        document.add(chapter1);                        //5、添加图片        //图片1        Image image1 = Image.getInstance("E:\\123.jpg");        //设置图片位置的x轴和y周        image1.setAbsolutePosition(100f, 550f);        //设置图片的宽度和高度        image1.scaleAbsolute(200, 200);        //将图片1添加到pdf文件中        document.add(image1);        //图片2        Image image2 = Image.getInstance(new URL("http://b.hiphotos.baidu.com/image/pic/item/6159252dd42a28341d491d0057b5c9ea14cebfc9.jpg"));        //设置图片位置的x轴和y周        image2.setAbsolutePosition(100f, 300f);        //设置图片的宽度和高度        image2.scaleAbsolute(200, 200);        //将图片2添加到pdf文件中        document.add(image2);                        //6、添加表格:        //添加一个3列的表        PdfPTable table = new PdfPTable(3);         table.setWidthPercentage(100); // 宽度100%填充        table.setSpacingBefore(10f); // 前间距        table.setSpacingAfter(10f); // 后间距        List
listRow = table.getRows(); //设置列宽 float[] columnWidths = { 1f, 2f, 3f }; table.setWidths(columnWidths); //行1 PdfPCell cells1[]= new PdfPCell[3]; PdfPRow row1 = new PdfPRow(cells1); //单元格 cells1[0] = new PdfPCell(new Paragraph("111"));//单元格内容 cells1[0].setBorderColor(BaseColor.BLUE);//边框颜色 cells1[0].setPaddingLeft(20);//左填充20 cells1[0].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中 cells1[0].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中 cells1[1] = new PdfPCell(new Paragraph("222")); cells1[2] = new PdfPCell(new Paragraph("333")); //行2 PdfPCell cells2[]= new PdfPCell[3]; PdfPRow row2 = new PdfPRow(cells2); cells2[0] = new PdfPCell(new Paragraph("444")); //把第一行添加到集合 listRow.add(row1); listRow.add(row2); //把表格添加到文件中 document.add(table); //添加有序列表 com.itextpdf.text.List orderedList = new com.itextpdf.text.List(com.itextpdf.text.List.ORDERED); orderedList.add(new ListItem("Item one")); orderedList.add(new ListItem("Item two")); orderedList.add(new ListItem("Item three")); document.add(orderedList); //设置属性 //标题 document.addTitle("this is a title"); //作者 document.addAuthor("pan"); //主题 document.addSubject("this is subject"); //关键字 document.addKeywords("Keywords"); //创建时间 document.addCreationDate(); //应用程序 document.addCreator("pan.com"); // 关闭文档 document.close(); //关闭书写器 writer.close(); }}

完毕。

转载于:https://my.oschina.net/u/3534905/blog/1790752

你可能感兴趣的文章
红米手机4X怎么刷入开发版启用ROOT权限
查看>>
零基础学习大数据的路线和方向
查看>>
java和mysql之间的时间日期类型传递【原】
查看>>
TCP三次握手与四次挥手详解
查看>>
【更新】Stimulsoft Reports v2019.3.1更新亮点二
查看>>
stimulsoft入门教程:报表与页面上的图表(二)
查看>>
castException
查看>>
Red Hat Enterprise 5.3 下载地址及序列号
查看>>
打印九九乘法表
查看>>
TextView 添加属性自带滚动
查看>>
Cisco *** 学习笔记--第一天
查看>>
导出来Domino中所有用户的Internet地址
查看>>
linq关系映射(1)
查看>>
解决python及round函数四舍五入的问题
查看>>
运维85条军规
查看>>
OSPF动态路由协议一致性测试简介
查看>>
for 014
查看>>
Linux 常用命名回忆
查看>>
学习nodejs -02
查看>>
【笔记】给Qt内嵌一个Chrome吧
查看>>