精华内容
下载资源
问答
  • 1、vbs 遍历windows目录 2、vbs 读取WORD,提取word中的附件EXCEL; 3、vbs 读取EXCEL,修改EXCEL中的内容; 4、vbs 将EXCEL中的内容导入数据库 5、vbs 操作文件:打开、移动;
  • jacob解析word excel附件

    2013-05-03 12:16:21
    jacob解析word excel的jar包 dll文件
  • 用C#转换WordExcel文档为Html文件-附件资源
  • 编辑word,向word中插入图片、EXCELWORD附件,再将word保存为xml格式,通过XML查看工具打开xml格式的word的源码,通过对比源码, 可以发现平时我们在编辑word时,向word中插入插入图片,EXCELword附件时,...

    1、word中插入对象的原理

    编辑word,向word中插入图片、EXCEL、WORD等附件,再将word保存为xml格式,通过XML查看工具打开xml格式的word的源码,通过对比源码,

    可以发现平时我们在编辑word时,向word中插入插入图片,EXCEL,word等附件时,实际上是将附件以Base64位的格式插入到word的源码中

    2、实现技术手段

    通过Fremarket技术生成word,详细技术百度有很多讲解,这里只讲解百度上查不到的技术手段。

    1、将手动编辑好的带附件的xml格式的word用xml打开源码,找到附件对应的很长的一段Base64位格式的字符串删除掉,用${**}这种占位符代替

    2、读取要插入的附件文件,将从输入流中读取的字节数组转化成Base64,转化后的Base64位字符串填充到占位符中

     

    转载于:https://www.cnblogs.com/javaGoGo/p/10152733.html

    展开全文
  • word中加入excel附件 excel单元格中插入图片 poi 制作 Excel , jxl 插入图片 压缩图片/宽高,动态控制单元格高度与宽度 1.word 需要模板 手动创建word excel .... * word附件导出 */ @ResponseBody @Req

    word中加入excel附件
    excel单元格中插入图片
    word freemarker
    Excel poi 制作, jxl 插入图片

    压缩图片/宽高,动态控制单元格高度与宽度
    在这里插入图片描述

    1.word 需要模板
    手动创建word excel .向word中插入excel附件并另存为 word xml 格式
    在这里插入图片描述

    在这里插入图片描述
    替换符替换 文字 和附件base64内容
    有两个binaryData标签 一个是base64,另一个是附件显示的样式
    在这里插入图片描述

    在这里插入图片描述

    
      /**
         * word附件导出
         */
        @ResponseBody
        @RequestMapping(value = "/generateReports", method = RequestMethod.GET)
        public void generateReports(HttpServletRequest request, HttpServletResponse response) throws Exception {
            //查询数据
            Map condition = getSelection(request);
       
            //生成excel
            Long num = System.currentTimeMillis();
            String filename = num + ".xls";
            sendExcel(request, response, filename);
            //制作word
            WordUtil wordUtil = new WordUtil();
            Map<String, Object> dataMap = new HashMap<String, Object>();
            /**wordTemplate*/
            Department dept = (Department) request.getSession().getAttribute("CURRENT_DEPT");
    //        List<Map> mapList = sortingService.findShopInfoBySort2(condition);
           // if (mapList.size() > 0) {
                //向word中添加数据map
                Date startTime = DateUtil.parseTime(start);
                Date endTime = DateUtil.parseTime(end);
                String startTime1 = new SimpleDateFormat("yyyy年MM月dd日").format(startTime);
                String endTime1 = new SimpleDateFormat("yyyy年MM月dd日").format(endTime);
                dataMap.put("startTime", startTime1);
                dataMap.put("endTime", endTime1);
          //  }
            //调试
    //        Thread.sleep(1000);
    //        dataMap.put("excelEnclosure", wordUtil.getFileStr(filePath + "副本" + filename));
    
            //写入
            try {
                response.setCharacterEncoding("UTF-8");
                response.setHeader("content-Type", "application/msword");
                response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode("函告" + num + ".doc", "UTF-8"));
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            wordUtil.createDoc(dataMap, response, "wordTemplate", filePath + "函告" + num + ".doc");
    
            //删除临时文件
            File file = new File(filePath + "副本" + filename);
            if (file.exists()) {
                file.delete();
            }
        }
    
    public class WordUtil {
    	public Configuration configure=null;
    	public WordUtil(){
    //       configure=new Configuration(Configuration.VERSION_2_3_22);
    		configure=new Configuration();
    		configure.setDefaultEncoding("utf-8");
    	}
    //创建word
    	public void createDoc( Map<String,Object> dataMap,HttpServletResponse response, String downloadType, String savePath){
    
    		try {
    			//加载需要装填的模板
    			Template template=null;
    			//设置模板装置方法和路径,FreeMarker支持多种模板装载方法。可以从servlet,classpath,数据库装载。
    			//加载模板文件,放在template下
    			configure.setClassForTemplateLoading(this.getClass(), "/com/~/util/template");
    			//设置对象包装器
    			//configure.setObjectWrapper(new DefaultObjectWrapper());
    			//设置异常处理器
    			configure.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);
    			//定义Template对象,注意模板类型名字与downloadType要一致
    			template=configure.getTemplate(downloadType + ".xml");
    			File outFile=new File(savePath);
    			Writer out=null;
    			//指定编码表需使用转换流,转换流对象要接收一个字节输出流
    			out = response.getWriter();
    			template.process(dataMap, out);
    
    			out.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (TemplateException e) {
    			e.printStackTrace();
    		}
    	}
    	}
    
     /**
         * 制作excel
         */
        public void sendExcel(HttpServletRequest request, HttpServletResponse response, String filename) {
        	//condition 筛选条件
            Map condition = getSelection(request);
            //获取数据
            List<TShopCheckInfo> list = this.tShopCheckInfoService.selectShopInfoList(condition);
            //列头
            String[] title = {  "是否", "图片",};
            String sheetName = "sheet1";
            String[][] content = new String[list.size()][2];
            try {
                int nu = 50;
                if (list.size() < nu) {
                    nu = list.size();
                }
                //循环添加数据   数据库存的图片地址
                for (int i = 0; i < list.size(); i++) {
                    content[i][0] = list.get(i).getEscape() ? (StringUtils.isNotEmpty(list.get(i).getEscapeText()) ? "是(" + list.get(i).getEscapeText() + ")" : "是") : "否";
                    content[i][1] = list.get(i).getEscapeImgs();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName, title, content, null);
            try {
                // TODO: 2020/7/29  地址需要更换
                //输出Excel文件
                // 这里是先将文件输出到服务器本地,再用WritableWorkbook进行图片处理
                FileOutputStream output = new FileOutputStream(filePath + filename);
                wb.write(output);
                output.flush();
                //测试
                Thread.sleep(1000);
                //插入图片到excel
                List<String> nameList = new ArrayList<>();
                excelImgUpdate(filePath, filename, list, nameList);
                //响应到客户端
    //            FileInputStream inputStream = new FileInputStream(filePath + "副本" + filename);
    //            org.apache.poi.ss.usermodel.Workbook workbook = WorkbookFactory.create(inputStream);
                //setHeader
    //            downLoadExcel("附件" + filename, response, workbook);
    //            FileOutputStream output = new FileOutputStream(filePath + filename);
                //删除临时文件
    //            nameList.add(filePath + "副本" + filename);
                nameList.add(filePath + filename);
                delTemporary(nameList);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    package com.ztwx.ezxf.util;
    import org.apache.commons.lang.StringUtils;
    import org.apache.poi.hssf.usermodel.*;
    public class ExcelUtil {
    
    	/**
    	 * 导出Excel
    	 */
    	public static HSSFWorkbook getHSSFWorkbook(String sheetName, String[] title, String[][] values, HSSFWorkbook wb) {
    		// 第一步,创建一个HSSFWorkbook,对应一个Excel文件
    		if (wb == null)
    			wb = new HSSFWorkbook();
    		// 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet
    		HSSFSheet sheet = wb.createSheet(sheetName);
    		//设置单元格的宽度
    		sheet.setDefaultColumnWidth(18);
    		//设置第一列宽度
    		sheet.setColumnWidth(0, 252*40+323);
    		//设置第四列宽度
    		sheet.setColumnWidth(3, 252*25+323);
    		// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制
    		HSSFRow row = sheet.createRow(0);
    		// 第四步,创建单元格,并设置值表头 设置表头居中
    		HSSFCellStyle style = wb.createCellStyle();
    		style.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    		style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    		style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    		style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    		style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
    		style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中
    		
    		//声明列对象
    		HSSFCell cell = null;
    		HSSFCell cell2 = null;
    		HSSFFont font = wb.createFont();
    
    		//创建标题
    		for (int i = 0; i < title.length; i++) {
    			cell = row.createCell(i);
    			cell.setCellValue(title[i]);
    			//字体
    //			font.setBoldweight(Font.BOLDWEIGHT_BOLD);
    			font.setFontHeightInPoints((short) 12);
    			style.setFont(font);
    			cell.setCellStyle(style);
    		}
    		//创建内容
    		for (int i = 0; i < values.length; i++) {
    			row = sheet.createRow(i + 1);
    			//清空字体
    //			font.setBoldweight((short)400);
    //			font.setBold(false);
    //			style.setFont(font);
    			for (int j = 0; j < values[i].length; j++) {
    				
    				//将内容按顺序赋给对应的列对象
    				cell2 = row.createCell(j);
    				if(StringUtils.isNotBlank(values[i][j])){
    					cell2.setCellValue(values[i][j]);
    				}else{
    					cell2.setCellValue("/");
    				}
    
    //				内容设置样式
    				cell2.setCellStyle(style);
    			}
    		}
    		return wb;
    	}
    }
    
    
     //向excel 加入图片
        public List<String> excelImgUpdate(String filePath, String filename, List<TShopCheckInfo> list, List<String> nameList) throws Exception {
            Workbook wb = Workbook.getWorkbook(new File(filePath + filename)); // 获得原始文档
            //创建副本;
            WritableWorkbook workbook = Workbook.createWorkbook(new File(filePath + "副本" + filename), wb);
            WritableSheet sheet = workbook.getSheet(0);
            //调用图片插入函数  图片插入的行列
            //用map存放有图片时候对应的行信息  列固定
    //        Map<Integer, ArrayList> map = new HashMap();
          
            for (int i = 0; i < list.size(); i++) {
                //8   插入对应的列
                String json9 = list.get(i).getEscapeImgs();
                ArrayList arrayList9 = getImgSrc(json9);
                if (arrayList9.size() > 0) {
                    nameList = imgExcelService.addPictureToExcel(nameList, sheet, arrayList9, i + 1, 8);
                }
            }
    
            //写入Excel表格中;
            workbook.write();
            //关闭流;
            workbook.close();
            return nameList;
        }
    
    //图片压缩与写入  单元格控制
    public List<String> addPictureToExcel(List<String> nameList,WritableSheet picSheet, ArrayList pictureFilePaths, double cellRow, double cellCol)
                throws Exception {
            final double cellSpace = 0.02;//图片之间的间隔 占比
            double picWidthMax = 0;
            double picHeightSum = 0;//空出图片 离上下边框的距离
            ImgFile[] imgFiles = new ImgFile[pictureFilePaths.size()];
            //存放临时文件名
            for (int i = 0; i < pictureFilePaths.size(); i++) {
                ImgFile imgFile = new ImgFile();
                //下载图片到本地
                Long da = System.currentTimeMillis();
    //            String filePath = AddressUtil.getMacOrWin();
                String path = filePath + da + ".jpg";
                nameList.add(path);
                downloadPicture(pictureFilePaths.get(i).toString(), path);
                //图片压缩
    //            Thumbnails.of(path).size(300,300).toFile(path);
                CompressImageUtil.reduceImg(path,path,0,0,0.5f);
                File imageFile = new File(path);
    
                // 读入图片
                BufferedImage picImage = ImageIO.read(imageFile);
                ByteArrayOutputStream pngByteArray = new ByteArrayOutputStream();
                //将其他图片格式写成png的形式
                ImageIO.write(picImage, "PNG", pngByteArray);
                imgFile.setPngByteArray(pngByteArray);
                // 取得图片的像素高度,宽度
                //这里设置图片在单元格的尺寸 原理不清楚  该值为具体实验值
                double picWidth = picImage.getWidth() * 0.06;
    //            double picWidth = picImage.getWidth() ;
                double picHeight = picImage.getHeight() * 7;
    //            double picHeight = picImage.getHeight() ;
                imgFile.setHeigth(picHeight);
                imgFile.setWidth(picWidth);
                //汇总
                if (picWidth > picWidthMax) {
                    picWidthMax = picWidth;
                }
                picHeightSum += picHeight;
                imgFiles[i] = imgFile;
            }
    
            WritableFont font = new WritableFont(WritableFont.ARIAL, 14, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.RED);
            WritableCellFormat cellFormat = new WritableCellFormat(font);
            //设置背景颜色;
            cellFormat.setBackground(Colour.WHITE);
            //设置边框;
            cellFormat.setBorder(Border.ALL, BorderLineStyle.THIN);
            //设置自动换行;
            cellFormat.setWrap(true);
            //设置文字居中对齐方式;
            cellFormat.setAlignment(Alignment.CENTRE);
            //设置垂直居中;
            cellFormat.setVerticalAlignment(VerticalAlignment.CENTRE);
    
            Label imageLabel = new Label((int) cellCol, (int) cellRow, "", cellFormat);
            picSheet.addCell(imageLabel);
    
            //获取图片需要插入的单元格
    //        WritableCell cell =picSheet.getWritableCell(0, 0);
    
            //设置单元格宽高
            picSheet.setColumnView((int) cellCol, (int) picWidthMax);//列宽
            picSheet.setRowView((int) cellRow, (int) picHeightSum);//行高
    
            double widthStart = cellSpace;//开始宽度
            double heightStart = cellSpace;//开始高度
            //插入图片
            for (ImgFile imgFile0 : imgFiles) {
                double heigthFact = imgFile0.getHeigth() / picHeightSum;//实际高度
                double widthFact = imgFile0.getWidth() / picWidthMax;
                //图片高度压缩了cellSpace+moreHeight,目的是为了该图片高度不超出单元格
                if (heightStart + heigthFact >= 1) {
                    double moreHeight = heightStart + heigthFact - 1.00;
                    heigthFact -= moreHeight;
                    heigthFact -= cellSpace;
                }
                //图片宽度压缩了cellSpace,目的是为了该图片宽度不超出单元格
                if (widthFact >= 1) {
                    widthFact -= cellSpace;
                }
                //生成图片对象
                WritableImage image = new WritableImage(cellCol + widthStart, cellRow + heightStart,
                        widthFact, heigthFact, imgFile0.getPngByteArray().toByteArray());
                //将图片对象插入到sheet
                picSheet.addImage(image);
                //开始高度累加,获取下一张图片的起始高度(相对该单元格)
                heightStart += heigthFact;
                heightStart += cellSpace;//图片直接间隔为cellSpace
            }
            return nameList;
        }
    
    
        private static void downloadPicture(String urlList, String path) {
            URL url = null;
            try {
                url = new URL(urlList);
                DataInputStream dataInputStream = new DataInputStream(url.openStream());
    
                FileOutputStream fileOutputStream = new FileOutputStream(new File(path));
                ByteArrayOutputStream output = new ByteArrayOutputStream();
    
                byte[] buffer = new byte[1024];
                int length;
    
                while ((length = dataInputStream.read(buffer)) > 0) {
                    output.write(buffer, 0, length);
                }
                BASE64Encoder encoder = new BASE64Encoder();
                String encode = encoder.encode(buffer);//返回Base64编码过的字节数组字符串
                System.out.println(encode);
                fileOutputStream.write(output.toByteArray());
                dataInputStream.close();
                fileOutputStream.close();
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    
    
    展开全文
  • WPF中嵌入Office编辑器(支持WordExcel、PPT、Visio等)-附件资源
  • wordexcel转pdf的实现

    2016-12-02 17:15:45
    用aspose实现wordexcel转成pdf的功能,附件是myeclipse工程,导入即可运行,生成的pdf文件在与源wordexcel文件相同目录下,无水印,无文件大小限制。
  • 在IE浏览器上浏览且附件类型为Word或者Excel时会多一个打开按钮: 点击打开后: 备注:此种方式可以打开编辑多个附件。 调整步骤: 1.修改MvcSheetAll.js,增加如下所示代码: 可以搜索:actionTd.append($("&...

    效果图:

    IE浏览器上浏览且附件类型为Word或者Excel时会多一个打开按钮:

    wKiom1jlrESDIkEyAAAmT5-1wG4748.png-wh_50 

    点击打开后:

    wKiom1jlrE-geNS8AAB1sgClqZg046.png-wh_50 

     

    备注:此种方式可以打开编辑多个附件。

     

     

    调整步骤:

    1. 修改MvcSheetAll.js,增加如下所示代码:

    wKioL1jlrFnCvZQkAAEsqKEfkoY816.png-wh_50 

    可以搜索:actionTd.append($("<a href='" + url + "' class='fa fa-download' target='_blank' UC=true>" + SheetLanguages.Current.Download + "</a>"))

     

    在这个上面增加代码:

    //-start-chenghs 2016-10-28  

                        if (!!window.ActiveXObject || "ActiveXObject" in window) {                        

                            var workitemid = typeof (this.SheetInfo) == "undefined" ? "" : this.SheetInfo.WorkItemId;

                            var instanceid = typeof (this.SheetInfo) == "undefined" ? "" : this.SheetInfo.InstanceId;

                            var Mode = $.MvcSheetUI.QueryString("Mode");

                            if (fileType.indexOf('.') > -1 && (fileType.indexOf('.doc') > -1 || fileType.indexOf('.xls') > -1 || fileType.indexOf('.ppt') > -1)) {

                                actionTd.append($("<a href='" + (url.indexOf('http') == -1 ? _PORTALROOT_GLOBALUrl : '') + url.replace('ReadAttachment''OpenNtko') + "&InstanceId=" + instanceid + "&Workitemid=" + workitemid + "&Mode=" + Mode + "&E=" + this.Editable + "&dataField=" + this.DataField + "&SchemaCode=" + this.SchemaCode + "' class='fa fa-pencil' target='_blank' UC=true>打开</a>"));

                                actionTd.append("  ");

                            }

                            

                        }

                        //-end-

     

    2. 修改MvcSheet.master

     

    var _PORTALROOT_GLOBALUrl = "<%=this.PortalRootUrl%>"

    wKiom1jlrHWg6MDvAACI6z-rXo4030.png-wh_50 

     

    3. MvcSheet.master.Cs页面:

            /// <summary>

            /// 获取站点根目录路径

            /// </summary>

            public string PortalRootUrl

            {

                get

                {

                    return System.Configuration.ConfigurationManager.AppSettings["PortalUrl"];

                }

            }

     

    wKiom1jlrIajfGa4AABS95pBmv8032.png-wh_50 

     

    4. Web.config增加配置:

    <!--  NTKO使用  -->

        <add key="PortalUrl" value="http://localhost:8010" />(改成IP或者域名,反正要对应

    wKioL1jlrKmjUE58AAFFZ8pmPFs411.png-wh_50 

     

    5. Portal下增加打开页面:

    OpenNtko.aspx

    6. 添加JS文件:

    WFRes/_Scripts/sheets/SheetMy.js

    7. 修改OpenNtko.aspx.cs文件

    修改classid,version,caption,key.

    wKioL1jlrLORkZmsAAHf9YSpiCE767.png-wh_50 










    本文转自 lwl_BPM  51CTO博客,原文链接:http://blog.51cto.com/12438115/1913300,如需转载请自行联系原作者
    展开全文
  • word中插入Excel形式的文件附件

    千次阅读 2017-03-02 15:34:58
    分以下三步: 第一步: 在工具栏上单击插入选项中的对象,此时会弹出一... 注:简单地说,打开word,“插入”-“对象”-“Microsoft Excel 工作表” 如果你只想在word里显示为图标,可以把旁边的“显示为图标”勾
        分以下三步:

    第一步: 在工具栏上单击插入选项中的对象,此时会弹出一个对话框;
    第二步: 选择由文件创建,从下面浏览中找到文件后,再单击此对话框中的第二个选项"(显示为图标(A))";
    第三步: 单击确定就可以了。

        注:简单地说,打开word,“插入”-“对象”-“Microsoft Excel 工作表”
    如果你只想在word里显示为图标,可以把旁边的“显示为图标”勾上即可。
    展开全文
  • java word/excel转PDF: 原文地址 前端PDFObject插件不能加载远程链接的问题:原文地址 前端实现预览的方法总结,如果资源是公共可访问的,推荐使用该文章中的微软在线预览功能实现:原文地址 二、效果图 三、...
  • Java 中 Excel添加word.doc附件 怎么写?求大神指点
  • javaScript写的方法,将html导出wordexcel的详细例子。
  • 这个问题困扰了我好多天了,发现同事用foxmail没问题,我自己上web邮箱下载附件也没问题,就是outlook收下来附件打不开。 后来在微软一个冷清的Office Business Application找到了答案。 打开word, 文件->选项->...
  • 资源名称:Office办公软件必备技巧(WordExcel、PPT资源目录:【】Excel表格的35招必学秘技-办公软件初级学者必备【】Excel超级全面使用技巧office大全实例实战大法【】【教程】office2013快速入门指南【】【软件...
  • 若确认无误,烦请打印附件中的验收确认函签字并拍照或扫描反馈至我处。十分感谢!\n" + " 如有问题,请及时联系我们。\n" + " 祝您工作顺利!" ) ; //添加文件附件内容 MimeBodyPart mbp2 = new ...
  • ![图片说明](https://img-ask.csdn.net/upload/201902/15/1550197551_184700.png) excel/ppt/word作为附件发送被禁用了,应该如何才能解除
  • 推荐 WordEXCEL必备工具箱

    千次阅读 2019-09-20 09:41:36
    EXCEL必备工具箱: EXCEL必备工具箱是一个同时支持EXCEL/WPS插件,自带免费多标签(类似于OfficeTab),安装后就可以使用,与excel/wps完全溶为一体,绝大部分操作执行后可撤销。完美支持32位/64位OFFICE,以及2014...
  • Android中解析读取复杂wordexcel,ppt等的方法

    万次阅读 热门讨论 2016-08-02 17:49:20
    查阅了下资料,发现Android中最传统的直接解析读取wordexcel的方法主要用了java里第三方包,比如利用tm-extractors-0.4.jar和jxl.jar等,下面附上代码和效果图。  读取word用了tm-extractors-0.4.jar包,代码如
  • 附件中包含几套比较全面的wordexcel习题。一定会给你的office套件学习带来帮助。
  • ios 使用NSURlSession 下载文件并且使用进度条进行文件下载进度读取以及打开附件word,excel,ppt,pdf)显示 话不多说,直接写代码了  NSURLSession * session = [NSURLSession sessionWithConfiguration:...
  • 集成腾讯TBS文件浏览word,excel,ppt等文件 @Author GQ 2017年01月12日 基本每个项目中有附件下载和查看功能,我这里选择腾讯TBS文件浏览服务 记录一下集成遇到的问题和心得 (由于项目使用Kotlin写的,所以...
  • 在最近的一个项目中,遇到一个非常棘手的性能问题,场景是这样的:有PC端和手机端两个应用,用户在PC端上传的附件,如word,Excel,pdf等,当用户出差或不在电脑边上时,上传的附件在手机端能够打开预览。然后问题就...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,347
精华内容 3,738
关键字:

word附件excel