python3,写了一个框架,可以批量执行测试数据,可是怎么生成报告...
比如很简单的,可以这样:# -*- coding:utf-8 -*-import os,syshtml = open('index.html', 'w')html.write("""Testimg{float:left;margin:5px;}""")files = os.listdir('.')# 首先处理文本for f in files:if f.lower().endswith('.txt'):fp = open(f)content = fp.read()fp.close()html.write("https://img.sogoucdn.com/v2/thumb/?appid=200698&url=%25s" % content)# 然后处理图片for f in files:if f.lower().endswith('.jpg') or f.lower().endswith('.png'):html.write("" % f)html.write('')html.close()把这个python代码放在有图片和txt文本的目录里,运行就可以了。
如果不是jpg,修改增加png,gif就行了。
python处理word文档
>>>app=my.Office.Word.GetInstance()>>>doc=app.Documents[0]>>>table=doc.Tables[1]>>>table.Cell(1,1).Select()>>>app.Selection.MoveDown(Unit=5, Count=2, Extend=1)>>>app.Selection.Cells.Merge()>>>1. my.Office.Word.GetInstance()用win32com得到Word的Application对象的实例2. 我所使用的样本word文件中包含两个Table第二个Table是想要修改的3. table.Cell(1,1).Select()用于选中这个样表的第一个单元格4. app.Selection.MoveDown用于获得向下多选取3个单元格5. app.Selection.Cells.Merge()用于执行合并工作
如何用python读取word
使用Python的内部方法open()读取文本文件try:f=open('/file','r')print(f.read())finally:if f:f.close()如果读取word文档推荐使用第三方插件,python-docx 可以在官网上下载使用方式# -*- coding: cp936 -*-import docxdocument = docx.Document(文件路径)docText = '\n\n'.join([paragraph.text.encode('utf-8') for paragraph in document.paragraphs])print docText
批量生成word报告,部分内容不同
Jacob解决Word文档的读写问题收藏Jacob 是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。
使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。
Jacob下载的地址为:http://sourceforge.net/project/showfiles.php?group_id=109543&package_id=118368配置:(1)将解压包中的jacob.dll(x86常用,x64)拷到jdk安装目录下的jre\bin文件夹或windows安装路径下的WINDOWS\system32文件夹下(2)将jacob.jar文件拷到classpath下即可常见问题解决:对于”java.lang.UnsatisfiedLinkError: C:\WINDOWS\system32\jacob-1.14.3-x86.dll: 由于应用程序配置不正确,应用程序未能启动。
重新安装应用程序可能会纠正”这个问题,可以通过重新下载Jacob的jar及dll文件(最好版本比现在的低,如1.11)解决实例制作(主要功能:标题制作,表格制作,合并表格,替换文本,页眉页脚,书签处理):import com.jacob.activeX.ActiveXComponent;import com.jacob.com.Dispatch;import com.jacob.com.Variant;public class WordOperate { public static void main(String args[]) { ActiveXComponent wordApp = new ActiveXComponent("Word.Application"); // 启动word // Set the visible property as required. Dispatch.put(wordApp, "Visible", new Variant(true));// //设置word可见 Dispatch docs = wordApp.getProperty("Documents").toDispatch(); // String inFile = "d:\\test.doc"; // Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method, // new Object[] { inFile, new Variant(false), new Variant(false)},//参数3,false:可写,true:只读 // new int[1]).toDispatch();//打开文档 Dispatch document = Dispatch.call(docs, "Add").toDispatch();// create new document String userName = wordApp.getPropertyAsString("Username");// 显示用户信息 System.out.println("用户名:" + userName); // 文档对齐,字体设置//////////////////////// Dispatch selection = Dispatch.get(wordApp, "Selection").toDispatch(); Dispatch align = Dispatch.get(selection, "ParagraphFormat") .toDispatch(); // 行列格式化需要的对象 Dispatch font = Dispatch.get(selection, "Font").toDispatch(); // 字型格式化需要的对象 // 标题处理//////////////////////// Dispatch.put(align, "Alignment", "1"); // 1:置中 2:靠右 3:靠左 Dispatch.put(font, "Bold", "1"); // 字型租体 Dispatch.put(font, "Color", "1,0,0,0"); // 字型颜色红色 Dispatch.call(selection, "TypeText", "Word文档处理"); // 写入标题内容 Dispatch.call(selection, "TypeParagraph"); // 空一行段落 Dispatch.put(align, "Alignment", "3"); // 1:置中 2:靠右 3:靠左 Dispatch.put(selection, "Text", " "); Dispatch.call(selection, "MoveDown"); // 光标标往下一行 //表格处理//////////////////////// Dispatch tables = Dispatch.get(document, "Tables").toDispatch(); Dispatch range = Dispatch.get(selection, "Range").toDispatch(); Dispatch table1 = Dispatch.call(tables, "Add", range, new Variant(3), new Variant(2), new Variant(1)).toDispatch(); // 设置行数,列数,表格外框宽度 // 所有表格 Variant tableAmount = Dispatch.get(tables, "count"); System.out.println(tableAmount); // 要填充的表格 Dispatch t1 = Dispatch.call(tables, "Item", new Variant(1)) .toDispatch(); Dispatch t1_row = Dispatch.get(t1, "rows").toDispatch();// 所有行 int t1_rowNum = Dispatch.get(t1_row, "count").getInt(); Dispatch.call(Dispatch.get(t1, "columns").toDispatch(), "AutoFit");// 自动调整 int t1_colNum = Dispatch.get(Dispatch.get(t1, "columns").toDispatch(), "count").getInt(); System.out.println(t1_rowNum + " " + t1_colNum); for (int i = 1; i <= t1_rowNum; i++) { for (int j = 1; j <= t1_colNum; j++) { Dispatch cell = Dispatch.call(t1, "Cell", new Variant(i), new Variant(j)).toDispatch();// 行,列 Dispatch.call(cell, "Select"); Dispatch.put(selection, "Text", "cell" + i + j); // 写入word的内容 Dispatch.put(font, "Bold", "0"); // 字型租体(1:租体 0:取消租体) Dispatch.put(font, "Color", "1,1,1,0"); // 字型颜色 Dispatch.put(font, "Italic", "1"); // 斜体 1:斜体 0:取消斜体 Dispatch.put(font, "Underline", "1"); // 下划线 Dispatch Range = Dispatch.get(cell, "Range").toDispatch(); String cellContent = Dispatch.get(Range, "Text").toString(); System.out.println((cellContent.substring(0, cellContent .length() - 1)).trim()); } Dispatch.call(selection, "MoveDown"); // 光标往下一行(才不会输入盖过上一输入位置) } //合并单元格//////////////////////// Dispatch.put(selection, "Text", " "); Dispatch.call(selection, "MoveDown"); // 光标标往下一行 Dispatch range2 = Dispatch.get(selection, "Range").toDispatch(); Dispatch table2 = Dispatch.call(tables, "Add", range2, new Variant(8), new Variant(4), new Variant(1))....
如何使用sphinx生成Python第三方模块的文档
在使用Python的过程中,无疑我们经常需要下载安装第三方模块(如何安装:URL),而安装后我们必然会面临一个使用的问题,这时候我们需要阅读相关的文档。
可是我们会发现下载的第三方模块目录的doc文件夹下只有一个conf.py文件和一些后缀为rst的文件,文档在哪里呢?其实Python提供了专用的文档生成工具,有了这些工具就可以很方便地生成我们需要的文档了。
本文就是介绍如何使用一些第三方工具(sphinx)来生成这些文档。
1.下载并安装Docutils:http://docutils.sf.net/。
2.下载并安装sphinx :http://pypi.python.org/pypi/Sphinx/1.1。
Sphinx 是用来生成文档的,设计的初衷是为了生成python的文档。
可以生成html、htmlhelp/chm、qthelp、devhelp、latex、man 等格式的文档。
3.在Widnows环境下,打开命令提示符,使用cd /d 命令将当前目录切换至Sphinx目录,运行命令:python sphinx-build.py -b html sourcedir builddir,其中,-b后面的字符串用于控制输出文档的格式,默认为html。
sourcedir表示文档来源文件夹(一般就是包含conf.py文件的那个文件夹),builddir表示生成文档的目标文件夹。
(注:在Windows环境下,请不要将sphinx文件夹、sourcedir 和builddir 设置成包含中文的路径,否则容易出现一些默名其妙的错误,例如编码错误。
)
转载请注明出处51数据库 » python 生成word报告