精华内容
下载资源
问答
  • 怎么把pdf中的图片文字转换成excel

    千次阅读 2015-05-14 10:44:15
    PDF转换成Excel本不是一个技术活,利用一些小技巧和工具,其实你会发现PDF转换成Excel是很容易的,让你PDF转换成Excel非常轻松,而且是免费的。  我们常见的PDF转换成Excel文档分为两种类型:  ①纯文字的...
      很多网友经常会问到“怎么把PDF格式文件转换成Excel、XLS格式文档”?PDF转换成Excel本不是一个技术活,利用一些小技巧和工具,其实你会发现PDF转换成Excel是很容易的,让你PDF转换成Excel非常轻松,而且是免费的。
      我们常见的PDF转换成Excel文档分为两种类型:
      ①纯文字的PDF转Excel
      这种情况比较常见,也就是PDF中的表格数字数据是可以复制出来的,这种PDF转换成Excel效果是最好的,基本可以保证很好的排版,和无错的数据!
      ②图片版的PDF转Excel表格数据
      小部分的PDF里面的表格是来自扫描或图片形式保存的,这种情况只能通过文字识别的方式把图片中的表格和数据读取出来,还原表格。如果图片清晰,格式整洁,转换出来的效果还是很好的。
      PDF图片转换成Excel的操作流程如下:
      1、打开万能PDF转换成Excel转换器,点击进入软件,选择需要使用的模式,如果需要将文件转化为Excel文档,点击左上角的"PDF转Excel"模式。
      2、点击左下角的"添加文件",把需要转换的文件添加进来,一次可添加多个文件。同时选择转换后文件需要保存的位置。
      3、最后点击右边"开始转换"按钮,等待片刻即可。
      PDF转换成excel转换器http://www.33lc.com/soft/34600.html
          软件界面简洁、操作简单,你只需把PDF文件拖曳到软件界面中,然后单击“转换”即可完成转换,这对于大量毫无文件格式转换经验的用户来说无疑是极其方便的。
    展开全文
  • 日常工作中我们经常会将PDF转换成表格使用,毕竟Excel数据计算功能相当强大。转换的方法和工具虽然很多,但大多转换后的表格图片丢失了,要怎么才能转换后依然保留图片呢。 分享两个简单的转换的方法,亲测原PDF...

    日常工作中我们经常会将PDF转换成表格使用,毕竟Excel的数据计算功能相当强大。转换的方法和工具虽然很多,但大多转换后的表格图片丢失了,要怎么才能转换后依然保留图片呢。

    分享两个简单的转换的方法,亲测原PDF文件中表格中的图片转换后都能依然保留。

    方法1在线免费转换

    搜索speedpdf后打开这个在线转换工具页面,网页任意处右击可以翻译成中文页面。接着选择PDF转Excel进入转换;
    在这里插入图片描述

    点击上传文件添加需要转换的PDF文件,可以同时上传多个,添加成功后点击文件后面对应的convert开始转换,完成后直接下载即可。
    在这里插入图片描述

    方法2 客户端批量处理

    如果需要转换的PDF比较多,上传和点击转换都比较耗时,那么我们就可以使用这个一键批量上传和转换的转换器。

    下载安装极速玩转后,打开软件选择PDF转Excel进入转换;
    在这里插入图片描述

    直接将所有需要转换的PDF文档拖到转换页面后,点击右下角的开始转换就能一键批量处理。左下角的输出路径可以修改转换后的表格保存到桌面等位置。
    在这里插入图片描述

    另外我们也可以在转换完成中,查看所有已转换记录以及在文档处右击选择打开查看。

    展开全文
  • 本篇文章带大家使用Java来实现生成Word、Excel文档,然后将Word或Excel文档转换成PDF,最后再将PDF转换成图片,这里是根据我业务需求进行开发(我这边是对接第三方公司将检测数据同步的时候入库并且生成检测报告,...

    摘要

    本篇文章带大家使用Java来实现生成Word、Excel文档,然后将Word或Excel文档转换成PDF,最后再将PDF转换成图片,这里是根据我业务需求进行开发(我这边是对接第三方公司将检测数据同步的时候入库并且生成检测报告,首先是将检测报告的数据生成Word模板,然后将Word转换成PDF最后转换成图片显示在页面查看),有需要的伙伴可以参考借鉴一下。

    准备

    1. 引入相关的jar包(POI相关jar包大家网上下载)

      word转pdf需要引入 aspose-words-15.8.0-jdk16.jar。 点击下载 (提取码:0vth)

      Excel转PDF需要引入aspose-cells-8.5.2.jar。 点击下载 (提取码:pnqw)

    2. 引入license.xml文件(备注:license文件只能破解Word版本)
      在这里插入图片描述

      <License>
          <Data>
              <Products>
                  <Product>Aspose.Total for Java</Product>
                  <Product>Aspose.Words for Java</Product>
              </Products>
              <EditionType>Enterprise</EditionType>
              <SubscriptionExpiry>20991231</SubscriptionExpiry>
              <LicenseExpiry>20991231</LicenseExpiry>
              <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
          </Data>
          <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
      </License>
      

    步骤

    第一步:创建工具类
    在这里插入图片描述

    第二步:开发工具类所需方法(每个方法都有注释说明)

    package com.hontek.detectiondevice.comm;
    
    import com.aspose.cells.License;
    import com.aspose.cells.PdfSaveOptions;
    import com.aspose.cells.Workbook;
    import com.hontek.comm.util.DirectoryUtil;
    import com.hontek.detectiondevice.pojo.CheckEquipment;
    import com.hontek.detectiondevice.pojo.CheckInfo;
    import com.hontek.detectiondevice.pojo.CheckInfoDetail;
    import org.apache.log4j.Logger;
    import org.apache.pdfbox.pdmodel.PDDocument;
    import org.apache.pdfbox.rendering.PDFRenderer;
    import org.apache.poi.hssf.usermodel.*;
    import org.apache.poi.hssf.util.HSSFColor;
    import org.apache.poi.ss.util.CellRangeAddress;
    import org.apache.poi.ss.util.RegionUtil;
    
    import javax.imageio.ImageIO;
    import javax.servlet.http.HttpServletRequest;
    import java.awt.image.BufferedImage;
    import java.io.*;
    
    
    /**
     * 检测报告工具类
     * @Description: TODO
     * @Author: yang
     * @Date 2020/12/21 11:37
     */
    public class DetectionReportUtils {
    
    	private static Logger logger = Logger.getLogger(DetectionReportUtils.class);
    
    	public static void generateExcelFile(CheckEquipment equipment,CheckInfo info, CheckInfoDetail detail, HttpServletRequest request){
    		try {
    			
    			// 第一步,创建一个webbook,对应一个Excel文件
    			HSSFWorkbook wb = new HSSFWorkbook();
    			// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
    			HSSFSheet sheet = wb.createSheet(detail.getSampleName()+detail.getItemName()+"速测检测报告");
    			// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
    			HSSFCellStyle style = wb.createCellStyle();
    			style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直
    			style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
    
    			HSSFFont font = wb.createFont();
    			font.setFontName("等线");
    			font.setFontHeightInPoints((short) 20);//设置字体大小
    			font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
    
    			style.setFont(font);
    
    
    			sheet.addMergedRegion(new CellRangeAddress(0,0,0,7));	//跨列
    
    			HSSFRow row = sheet.createRow((int) 0);
    			row.setHeight((short) (50 * 20));
    			sheet.setColumnWidth(0, (short) (30 * 50));
    			sheet.setColumnWidth(1, (short) (50 * 50));
    			sheet.setColumnWidth(2, (short) (50 * 65));
    			sheet.setColumnWidth(3, (short) (50 * 65));
    			sheet.setColumnWidth(4, (short) (50 * 55));
    			sheet.setColumnWidth(5, (short) (50 * 55));
    			sheet.setColumnWidth(5, (short) (50 * 55));
    			sheet.setColumnWidth(7, (short) (80 * 100));
    			StringBuffer lable = new StringBuffer();
    			lable.append("农产品质量安全检测");
    
    			HSSFCell cell = row.createCell(0);
    			cell.setCellValue(lable.toString());
    			cell.setCellStyle(style);
    
    			HSSFFont font1 = wb.createFont();
    			font1.setFontName("等线");
    			font1.setFontHeightInPoints((short) 16);//设置字体大小
    
    			HSSFCellStyle style1 = wb.createCellStyle();
    			style1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直
    			style1.setAlignment(HSSFCellStyle.ALIGN_CENTER);
    			style1.setWrapText(true);
    			style1.setFont(font1);
    
    			sheet.addMergedRegion(new CellRangeAddress(1,1,0,7));	//跨列
    
    			HSSFRow row1 = sheet.createRow((int)1);
    			row1.setHeight((short) (26 * 20));
    
    			StringBuffer lable1 = new StringBuffer();
    			lable1.append("速测检测报告");
    
    			HSSFCell cell1 = row1.createCell(0);
    			cell1.setCellValue(lable1.toString());
    			cell1.setCellStyle(style1);
    
    			HSSFFont font2 = wb.createFont();
    			font2.setFontName("等线");
    			font2.setFontHeightInPoints((short) 11);//设置字体大小
    
    			HSSFCellStyle style2 = wb.createCellStyle();
    			style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直
    			style2.setAlignment(HSSFCellStyle.ALIGN_LEFT);
    			style2.setWrapText(true);
    			style2.setFont(font2);
    
    			HSSFRow row2 = sheet.createRow((int)2);
    			row2.setHeight((short) (20 * 20));
    
    			StringBuffer lable2 = new StringBuffer();
    			String reportNo = info.getReportNo();
    			if(reportNo.equals("")&&reportNo == null){
    				lable2.append("报告编号:"+"");
    			}else {
    				lable2.append("报告编号:"+reportNo);
    			}
    			HSSFCell cell2 = row2.createCell(0);
    			cell2.setCellValue(lable2.toString());
    			cell2.setCellStyle(style2);
    			cell2 = row2.createCell(3);
    			cell2.setCellValue("");
    			cell2.setCellStyle(style2);
    
    			sheet.addMergedRegion(new CellRangeAddress(2,2,0,4));	//跨列
    			sheet.addMergedRegion(new CellRangeAddress(2,2,5,7));	//跨列
    
    
    			HSSFFont otherFont = wb.createFont();
    			otherFont.setColor(HSSFColor.RED.index);
    			otherFont.setFontName("等线");
    			otherFont.setFontHeightInPoints((short) 11);//设置字体大小
    
    			HSSFCellStyle otherStyle = wb.createCellStyle();
    			otherStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直
    			otherStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT);
    			otherStyle.setWrapText(true);
    			otherStyle.setFont(otherFont);
    
    
    
    			HSSFRow row3 = sheet.createRow((int)3);
    			row3.setHeight((short) (28 * 20));
    
    			StringBuffer lable3 = new StringBuffer();
    			String entName = info.getEntName();
    			if(entName.equals("")&&entName == null){
    				lable3.append("样品来源:"+"");
    			}else {
    				lable3.append("样品来源:"+entName);
    			}
    
    
    			HSSFCell cell3 = row3.createCell(0);
    			cell3.setCellValue(lable3.toString());
    			cell3.setCellStyle(style2);
    			cell3 = row3.createCell(5);
    			if(info.getCiType() == 1){
    				cell3.setCellValue("检测类型:"+"自检");
    			}else if(info.getCiType() == 2){
    				cell3.setCellValue("检测类型:"+"抽检");
    			}
    			cell3.setCellStyle(otherStyle);
    
    			CellRangeAddress cra1 = new CellRangeAddress(3,3,0,4);
    			CellRangeAddress cra2 = new CellRangeAddress(3,3,5,7);
    			sheet.addMergedRegion(cra1);	//跨列
    			sheet.addMergedRegion(cra2);	//跨列
    
    			// 使用RegionUtil类为合并后的单元格添加边框
    			RegionUtil.setBorderBottom(1,cra1,sheet,wb); // 下边框
    			RegionUtil.setBorderLeft(1,cra1,sheet,wb); // 左边框
    			RegionUtil.setBorderRight(1,cra1,sheet,wb); // 有边框
    			RegionUtil.setBorderTop(1,cra1,sheet,wb); // 上边框
    
    			RegionUtil.setBorderBottom(1,cra2,sheet,wb); // 下边框
    			RegionUtil.setBorderLeft(1,cra2,sheet,wb); // 左边框
    			RegionUtil.setBorderRight(1,cra2,sheet,wb); // 有边框
    			RegionUtil.setBorderTop(1,cra2,sheet,wb); // 上边框
    
    
    			HSSFRow row4 = sheet.createRow((int)4);
    			row4.setHeight((short) (28 * 20));
    
    			StringBuffer lable4 = new StringBuffer();
    			String ceName = equipment.getCeName();
    			if(ceName.equals("")&&ceName == null){
    				lable4.append("检测仪器:"+"");
    			}else {
    				lable4.append("检测仪器:"+ceName);
    			}
    			HSSFCell cell4 = row4.createCell(0);
    			cell4.setCellValue(lable4.toString());
    			cell4.setCellStyle(style2);
    			cell4 = row4.createCell(5);
    			if(info.getCiTime().equals("")&&info.getCiTime() == null){
    				cell4.setCellValue("检测日期:"+"");
    			}else {
    				cell4.setCellValue("检测日期:"+info.getCiTime());
    			}
    			cell4.setCellStyle(style2);
    
    			CellRangeAddress cra3 = new CellRangeAddress(4,4,0,4);
    			CellRangeAddress cra4 = new CellRangeAddress(4,4,5,7);
    			sheet.addMergedRegion(cra3);	//跨列
    			sheet.addMergedRegion(cra4);	//跨列
    
    			// 使用RegionUtil类为合并后的单元格添加边框
    			RegionUtil.setBorderBottom(1,cra3,sheet,wb); // 下边框
    			RegionUtil.setBorderLeft(1,cra3,sheet,wb); // 左边框
    			RegionUtil.setBorderRight(1,cra3,sheet,wb); // 有边框
    			RegionUtil.setBorderTop(1,cra3,sheet,wb); // 上边框
    
    			RegionUtil.setBorderBottom(1,cra4,sheet,wb); // 下边框
    			RegionUtil.setBorderLeft(1,cra4,sheet,wb); // 左边框
    			RegionUtil.setBorderRight(1,cra4,sheet,wb); // 有边框
    			RegionUtil.setBorderTop(1,cra4,sheet,wb); // 上边框
    
    
    			HSSFCellStyle style5 = wb.createCellStyle();
    			style5.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直
    			style5.setAlignment(HSSFCellStyle.ALIGN_CENTER);
    			style5.setBorderBottom(HSSFCellStyle.BORDER_THIN);
                style5.setBorderLeft(HSSFCellStyle.BORDER_THIN);
                style5.setBorderRight(HSSFCellStyle.BORDER_THIN);
                style5.setBorderTop(HSSFCellStyle.BORDER_THIN);
    			style5.setWrapText(true);
    			style5.setFont(font2);
    
    			HSSFRow row5 = sheet.createRow((int)5);
    			row5.setHeight((short) (32 * 20));
    
    
    			HSSFCell cell5 = row5.createCell(0);
    			cell5.setCellValue("序号");
    			cell5.setCellStyle(style5);
    			cell5 = row5.createCell(1);
    			cell5.setCellValue("样品编号");
    			cell5.setCellStyle(style5);
    			cell5 = row5.createCell(2);
    			cell5.setCellValue("样品名称");
    			cell5.setCellStyle(style5);
    			cell5 = row5.createCell(3);
    			cell5.setCellValue("检测项目");
    			cell5.setCellStyle(style5);
    			cell5 = row5.createCell(4);
    			cell5.setCellValue("抑制率\n(检测值)");
    			cell5.setCellStyle(style5);
    			cell5 = row5.createCell(5);
    			cell5.setCellValue("检测\n结果");
    			cell5.setCellStyle(style5);
    			cell5 = row5.createCell(6);
    			cell5.setCellValue("单项判\n定结果");
    			cell5.setCellStyle(style5);
    			cell5 = row5.createCell(7);
    			cell5.setCellValue("检测标准");
    			cell5.setCellStyle(style5);
    
    			HSSFRow row6 = sheet.createRow((int)6);
    			row6.setHeight((short) (80 * 20));
    
    
    			HSSFCell cell6 = row6.createCell(0);
    			cell6.setCellValue("1");
    			cell6.setCellStyle(style5);
    			cell6 = row6.createCell(1);
    			cell6.setCellValue(detail.getSampleNo());
    			cell6.setCellStyle(style5);
    			cell6 = row6.createCell(2);
    			cell6.setCellValue(detail.getSampleName());
    			cell6.setCellStyle(style5);
    			cell6 = row6.createCell(3);
    			cell6.setCellValue(detail.getItemName());
    			cell6.setCellStyle(style5);
    			cell6 = row6.createCell(4);
    			cell6.setCellValue(detail.getCheckValue());
    			cell6.setCellStyle(style5);
    			cell6 = row6.createCell(5);
    			cell6.setCellValue(detail.getCheckResult());
    			cell6.setCellStyle(style5);
    			cell6 = row6.createCell(6);
    			cell6.setCellValue(detail.getSingleResult());
    			cell6.setCellStyle(style5);
    			cell6 = row6.createCell(7);
    			cell6.setCellValue(detail.getCheckStandard());
    			cell6.setCellStyle(style5);
    
    
    			HSSFRow row7 = sheet.createRow((int)7);
    			row7.setHeight((short) (50 * 20));
    
    			StringBuffer lable7 = new StringBuffer();
    			String ciInfo = info.getCiInfo();
    			if(ciInfo.equals("")&&ciInfo == null){
    				lable7.append("备注:"+"");
    			}else {
    				lable7.append("备注:"+ciInfo);
    			}
    			HSSFCell cell7 = row7.createCell(0);
    			cell7.setCellValue(lable7.toString());
    			cell7.setCellStyle(style2);
    
    			CellRangeAddress cra5 = new CellRangeAddress(7,7,0,7);
    			sheet.addMergedRegion(cra5);	//跨列
    
    
    			// 使用RegionUtil类为合并后的单元格添加边框
    			RegionUtil.setBorderBottom(1,cra5,sheet,wb); // 下边框
    			RegionUtil.setBorderLeft(1,cra5,sheet,wb); // 左边框
    			RegionUtil.setBorderRight(1,cra5,sheet,wb); // 有边框
    			RegionUtil.setBorderTop(1,cra5,sheet,wb); // 上边框
    
    			HSSFRow row8 = sheet.createRow((int)8);
    			row8.setHeight((short) (45 * 20));
    
    			StringBuffer lable8 = new StringBuffer();
    			String checkUnit = info.getCheckUnit();
    			if(checkUnit.equals("")&&checkUnit == null){
    				lable8.append("检测单位:"+"");
    			}else {
    				lable8.append("检测单位:"+checkUnit);
    			}
    			HSSFCell cell8 = row8.createCell(0);
    			cell8.setCellValue(lable8.toString());
    			cell8.setCellStyle(style2);
    
    			CellRangeAddress cra6 = new CellRangeAddress(8,8,0,7);
    			sheet.addMergedRegion(cra6);	//跨列
    
    
    			// 使用RegionUtil类为合并后的单元格添加边框
    			RegionUtil.setBorderBottom(1,cra6,sheet,wb); // 下边框
    			RegionUtil.setBorderLeft(1,cra6,sheet,wb); // 左边框
    			RegionUtil.setBorderRight(1,cra6,sheet,wb); // 有边框
    			RegionUtil.setBorderTop(1,cra6,sheet,wb); // 上边框
    
    			HSSFRow row9 = sheet.createRow((int)9);
    			row9.setHeight((short) (45 * 20));
    
    			StringBuffer lable9 = new StringBuffer();
    			String checkMan = info.getCheckMan();
    			if(checkMan.equals("")&&checkMan == null){
    				lable9.append("检测人员:"+"");
    			}else {
    				lable9.append("检测人员:"+checkMan);
    			}
    			HSSFCell cell9 = row9.createCell(0);
    			cell9.setCellValue(lable9.toString());
    			cell9.setCellStyle(style2);
    
    			CellRangeAddress cra7 = new CellRangeAddress(9,9,0,7);
    			sheet.addMergedRegion(cra7);	//跨列
    
    
    			// 使用RegionUtil类为合并后的单元格添加边框
    			RegionUtil.setBorderBottom(1,cra7,sheet,wb); // 下边框
    			RegionUtil.setBorderLeft(1,cra7,sheet,wb); // 左边框
    			RegionUtil.setBorderRight(1,cra7,sheet,wb); // 有边框
    			RegionUtil.setBorderTop(1,cra7,sheet,wb); // 上边框
    
    
    			// 保存Excel文件
    			try {
    
    				long old = System.currentTimeMillis();
    
    				File fileDir = DirectoryUtil.getDirectoryByName(request, "detectionFiles");
    				String excelPath = fileDir.getAbsolutePath()+File.separator+detail.getSampleNo()+".xls";
    				String pdfPath = fileDir.getAbsolutePath()+File.separator+detail.getSampleNo()+".pdf";
    				String imgPath = fileDir.getAbsolutePath()+File.separator+detail.getSampleNo()+".png";
    				OutputStream outputStream = new FileOutputStream(excelPath);
    				wb.write(outputStream);
    				outputStream.close();
    				//excel转为pdf
    				excel2pdf(excelPath,pdfPath);
    				//pdf转为png
    				pdf2png(fileDir.getAbsolutePath(),detail.getSampleNo());
    
    				long now = System.currentTimeMillis();
    
    				logger.info("共耗时:" + ((now - old) / 1000.0) + "秒"); //转化用时
    
    				/*String excelPath = "G:/"+sampleNo+".xls";
    				String pdfPath = "G:/"+sampleNo+".pdf";
    				String imgPath = "G:/"+sampleNo+".png";
    				OutputStream outputStream = new FileOutputStream(excelPath);
    				wb.write(outputStream);
    				outputStream.close();
    				//excel转为pdf
    				excel2pdf(excelPath,pdfPath);
    				//pdf转为png
    				pdf2png("G:",sampleNo);*/
    
    			} catch (Exception e) {
    				e.printStackTrace();
    				logger.error("转换异常:"+e.getMessage());
    			}
    
    
    		} catch (Exception e) {
    			e.printStackTrace();
    			logger.error("系统异常:"+e.getMessage());
    
    		}
    	}
    
    	/**
    	 * 获取license.xml(去除水印)
    	 * @Author yang
    	 * @Date   2021/01/04 16:39
    	 **/
    	private static boolean getLicense() {
    		boolean result = false;
    		try {
    			InputStream is = DetectionReportUtils.class.getClassLoader().getResourceAsStream("license.xml"); // license.xml应放在..\WebRoot\WEB-INF\classes路径下
    			License aposeLic = new License();
    			aposeLic.setLicense(is);
    			result = true;
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return result;
    	}
    
    	/**
    	 * Word文件转PDF
    	 * @param wordPath 需要被转换的word全路径带文件名
    	 * @param pdfPath 转换之后pdf的全路径带文件名
    	 */
    	public static void doc2pdf(String wordPath, String pdfPath) {
    		if (!getLicense()) { // 验证License 若不验证则转化出的pdf文档会有水印产生
    			return;
    		}
    		try {
    			long old = System.currentTimeMillis();
    			File file = new File(pdfPath); //新建一个pdf文档
    			FileOutputStream os = new FileOutputStream(file);
    			Document doc = new Document(wordPath); //Address是将要被转化的word文档
    			doc.save(os, com.aspose.words.SaveFormat.PDF);//全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 相互转换
    			long now = System.currentTimeMillis();
    			os.close();
    			System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒"); //转化用时
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    	/**
    	 * Excel文件转PDF
    	 * @param excelPath 需要被转换的excel全路径带文件名
    	 * @param pdfPath 转换之后pdf的全路径带文件名
    	 */
    	public static void excel2pdf(String excelPath, String pdfPath) {
    		if (!getLicense()) { // 验证License 若不验证则转化出的pdf文档会有水印产生
    			return;
    		}
    		try {
    			Workbook wb = new Workbook(excelPath);// 原始excel路径
    			PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
    			pdfSaveOptions.setOnePagePerSheet(true);//把内容放在一张PDF 页面上
    			FileOutputStream fileOS = new FileOutputStream(new File(pdfPath));
    			wb.save(fileOS, pdfSaveOptions);
    			fileOS.close();
    		} catch (Exception e) {
    			e.printStackTrace();
    			logger.error("Excel文件转PDF出错");
    		}
    	}
    
    	/**
    	 * 转换PDF为图片
    	 * @Author yang
    	 * @Date   2021/01/04 16:39
    	 **/
    	public static void pdf2png(String filepath,String filename) throws IOException {
    		try {
    			// 将pdf装图片 并且自定义图片得格式大小
    			File file = new File(filepath,filename+".pdf");
    
    			PDDocument doc = PDDocument.load(file);
    			PDFRenderer renderer = new PDFRenderer(doc);
    			//BufferedImage image = renderer.renderImageWithDPI(0, 72); // Windows native DPI
    
    			BufferedImage image = renderer.renderImage(0, 1);
    
    			ImageIO.write(image, "png", new File(filepath,filename+".png"));
    			doc.close();
    		} catch (Exception e) {
    			e.printStackTrace();
    			logger.error("转换PDF为图片pdf2png出错:"+filename);
    		}
    
    	}
    
    	public static void main(String[] args) {
    		//generateExcelFile("2020000003","鹰嘴桃","农药残留");
    
    	}
    
    }
    

    欢迎小伙伴留言评论,需要完整代码的加我QQ:450938667

    展开全文
  • 使用jquery.table2excel,将HTML的table标签数据导出成excel,包含导出图片到excel 在web实际使用中,需要将页面的表格转换成为EXCEL表格,原想写个原生的,但是发现一个插件很好用——jquery.table2excel,在这写...

    在web实际使用中,需要将页面的表格转换成为EXCEL表格,原想写个原生的,但是发现一个插件很好用——jquery.table2excel,在这写一个简单的demo。

    代码

    <!DOCTYPE>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>TABLE转换EXCEL</title>
            <script src="http://cdn.bootcss.com/jquery/1.11.0/jquery.min.js" ></script>
            <script src="js/jquery.table2excel.js"></script>
            <style type="text/css">
                .btn{
                    margin:20px;
                }
            </style>
        </head>
        <body>
            <center>
                <input class="btn" type="button"  value="点击导出">
                <div class="table2excel">
                    <table id = 'testTable' border="1">
                        <tr>
                            <th>标题一</th>
                            <th>标题二</th>
                            <th>标题三</th>
                        </tr>
                        <tr  class="noExl">
                          <td>100 (不导出)</td>
                          <td>200 (不导出)</td>
                          <td>300 (不导出)</td>
                        </tr>
                        <tr>
                          <td>400</td>
                          <td>500</td>
                          <td>600</td>
                        </tr>
                        <tr>
                          <td><a href="http://www.baidu.com">baidu.com</a></td>
                          <td><input tyle="text" value="input 数据"></td>
                          <td><img src="http://yuyuan:8080/zzz/img/test.jpg" alt="image"></td>
                        </tr>
                    </table>
                </div>
            </center>
            <script type="text/javascript">
                $(function() {
                    $(".btn").click(function(){
                        $(".table2excel").table2excel({
                            // 不被导出的表格行的CSS class类
                            exclude: ".noExl",
                            // 导出的Excel文档的名称
                            name: "Excel Document Name",
                            // Excel文件的名称
                            filename: "test",
                            //文件后缀名
                            fileext: ".xls",
                            //是否排除导出图片
                            exclude_img: false,
                            //是否排除导出超链接
                            exclude_links: false,
                            //是否排除导出输入框中的内容
                            exclude_inputs: false
                        });
                    }); 
                });
            </script>
        </body>
    </html>

    参考

    1. jQuery之家介绍
    2. table2excel的github地址
    3. table2excel的js文件下载地址

    总结

    1. 传入的参数默认是true(排除),需要显示的话就设置为false就可以了。
    2. 然后图片需要注意的是:图片地址要写一个完整的可以访问的互联网路径,要不然的话excel打不开,会显示空白的,然后你的电脑必须可以访问互联网。
    3. 这个demo并没有设置图片和表格的样式,有需要的自己设置。
    4. 我打开的文件是用office2016打开的。office其他的版本,以及wps均没有实验,可能会有差异吧,请注意!
    5. office 的受保护的视图,打开也是无法看到图片的,请自行搜索如何取消。
    展开全文
  • 为了避免文档预览的时候,排版...今天就给大家介绍PDF转换成Excel转换秘籍,满足你的PDF文件数据分析需求。 首先打开PDF365网站,这个网站绝对可以称得上是PDF文档处理神器,可以进行在线PDF转换成Word,PPT,图片,...
  • 刚学QT 想要在tablewidget输入数据后转成excel 转换程序抄自网络 但点击打印后出错 #include "mainwindow.h" #include "ui_mainwindow.h" #include #include #include #include #include MainWindow...
  • 数据获取的时候总会碰到很多非标准格式的文档,比如为了web显示良好,很多网站将excel文件转换成了pdf格式,还可能直接使用图片格式,而这类文档中的数据是无法直接用来作数据分析的。举个例子如下: 环境保护部...
  • 最近有个需求,将产品配置的Excel文件解析成json文件,...这篇文章讲的是如何读取Excel文件,将数据转换成json。  第一步:下载POI相关jar和Gson.jar  下载地址在:  http://poi.apache.org/download.html
  • 最近项目要实现一个功能, 将android app里面的数据库导成Excel表格 , 并将Excel表格通过蓝牙发送到其他上.先看看界面大概的功能图片上都已经体现了, 下面来讲讲实现的... 把数据库通过jxl.jar 转换成Excel表格, 3...
  • matlab中将mat数据文件转成excel文件

    千次阅读 2021-03-05 15:34:44
    最近处理光伏数据全是m文件,暂时还没找到python里可以简单调用的方法,用matlab处理了一下,可以转换成Excel或者csv文件,非常方便! 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑...
  • python将excel数据生成柱状图并导出成图片 由于python初学,所以分为两个步骤来进行,1.首先把excel的图表导出成.html文件。2.然后把html文件转换成png文件。其中使用的工具包为pyecharts(绘图),pandas(数据...
  • 如何将PDF转换成可编辑的excel表格

    千次阅读 2015-04-20 10:46:55
    我平时工作中经常接触到PDF文件格式,PDF文件格式的特点是容易阅读而难以编辑,想对PDF文件里面的表格数据进行提取汇总的就比较麻烦,可是试了好多方法与软件,将PDF格式的文件转换Excel文件后,竟然全是图片。...
  • **数据处理网站:**https://www.csvjson.com/csv2json ...把下面得数据截图,在发到qq里面,转文字,然后对照图片数据格式调好,调好之后,复制数据,按照上面得3)方案去转json数据。 ...
  • 想将图片1中的excel数据转换图片2中的xml格式,不知道应怎样编写VBA程序,目前已经写出一部分,但是转换出来的xml数据不全,求帮忙给出程序或将下面程序补全: Sub cheliang() Dim fso As Object, sFile As Object...
  • Excel中的图片URL地址转成图片文件

    万次阅读 热门讨论 2017-08-14 16:29:26
    前阵子从数据库中导出数据给业务,但是图片是个URL,业务需要在 Excel 中直接显示图片,因此在网上爬了很多VB脚本尝试修改,最终将Excel中的图片URL转换成图片。 VB脚本 LoadImage.bas : ' charset GB2312 . ...
  • 很多报纸和杂志都介绍过在Excel中,同时按住Shift键点击“文件”...利用这一功能,我们可以将一个数据表以图片的形式进行复制,从而将其转换图片。方法如下:  首先选中需要复制成图片的单元格区域,然后按...
  • 如何将图片转换成二进制存储

    热门讨论 2009-12-24 14:30:11
    }好了,这样通过上面的方法就可以把图片转换成Byte[]对象,然后就把这个对象保存到数据库中去就实现了把图片的二进制格式保存到数据库中去了。下面我就谈谈如何把数据库中的图片读取出来,实际上这是一个相反的过程...
  • 原博https://blog.csdn.net/lsg9012/article/details/77162976前阵子从数据库中导出数据给业务,但是图片是个URL,业务需要在 Excel 中直接显示图片,因此在网上爬了很多VB脚本尝试修改,最终将Excel中的图片URL转换...
  • 我的数据全部在json里,首先我用的图片是服务器网络地址,所以需要用IO转换成byte[]数组; 图片的位置: HSSFClientAnchor 插图片的位置: HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2); dx1,dy1,dx2,...
  • 我们都知道PDF格式非常稳定,但也因此操作起来难度大,特别是涉及到一些数据的计算,还是只有Excel的公式更方便,所以有时候我们也会将PDF转成Excel。你是否也遇到过转换后的表格打开却是空白,这是怎么回事呢? ...
  • 数据单元格换成图片并导出来,这在编辑表格时经常回遇到,在不截图,直接换成图片的情况下如何处理呢?看似很难实现的问题,在本文只需几步便可搞定,本例是通过“选择性粘贴”来实现的,如果你有更好的方法可以...
  • 导出图片需要将图片转换成base64格式,我在后台直接写了个url转base64接口并开启缓存 导出exce支持多层对象读取数据,例如:{a:{b:[{c:1}]}};key可以写成’a.b[0].c’ 此前我们应该先引入exceljs插件const ExcelJS = ...
  • 虽然PDF文档格式比较文档不易修改,也正因为如此需要编辑的时候就比较困难,特别是有时内容涉及到数据计算,我们一般都会转换成Excel表格再处理,但有时候PDF有内容转出来的表格打开却是空白是怎么回事? 一般出现...
  • /** * 操作导出的公共部分代码 * @param excelName 导出的... * @param valueFormat 值转换,用于处理需要转换的值,例如:状态 性别 等用数字标识的字段,导出后转指定文字方便查看 * 格式:{ *
  • 一般在导出Excel中,在创建工作表sheet后,初始化的sheet中row都是一行一行的...方案:使用POI在Excel中插入多张图片,由于平台中只保存图片的url地址,所以首先需要获取图片数据,然后转换为二进制,最后将图片插入。
  • 6.将选区存为图片:当前选择的区域转换成图片文件,保存在指定的路径中。 7.导出所有图片:将活动工作表中的所有图形对象另存为图片文件,保存在指定的路径中。 8.删除所有图片:可以瞬间删除活动工作表中的所有...
  • 本文主要是讲解,怎么使用aspose.cells读取Excel表中的图片,并把图片转换成流或是image对象。 二、开发环境说明 开发工具vs2012,c#语言, 三、Aspose.cells读取Excel数据表中图片的代码 1 //Excel表的...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 354
精华内容 141
关键字:

图片数据转换成excel