精华内容
下载资源
问答
  • Python WebScraper和Writer Workbook Excel文件 一个简单的python scraper 在此进行了,访问了指定字母之间的每个页面。 怎么运行的 使用urllib.request.urlopen(url)获取页面内容,然后使用解析html并将此参数作为...
  • python处理表格中指定某几列的内容

    千次阅读 2020-07-03 20:06:38
    大家在做接口自动化时要使用Excel中的接口用例,但是表格中的用例并不是每一列都有用,那怎么提取指定哪几列的内容,并把他们全部输出呢? import xlrd file_book = r"C:\Users\fasttext44.xlsx" work_book = xlrd....

    嗨,all
    大家在做接口自动化时要使用Excel中的接口用例,但是表格中的用例并不是每一列都有用,那怎么提取指定哪几列的内容,并把他们全部输出呢?

    import xlrd
    file_book = r"C:\Users\fasttext44.xlsx"
    work_book = xlrd.open_workbook(file_book)
    #print(work_book.sheet_names())
    #取第一个sheet
    sheet_name = work_book.sheet_names()[0]
    #用索引就可以,用by_name就报错,草;这个是取sheet中的内容
    sheet1 = work_book.sheet_by_index(0)
    #获取总列跟行数
    rows = sheet1.nrows
    cols = sheet1.ncols
    """  输出每行的第1,2列"""
    rows = 1
    while rows < 44:
        No1 = sheet1.row_values(rows)[1]
        No2 = sheet1.row_values(rows)[2]
        print("第%d题 :"% rows ,end=" \t")
        print(No1)
        print("正确答案:", end='\t')
        print(No2)
        rows += 1
    

    结果是这样的:

    1: 	班上的男同学总会偷偷摸小红的手,小明最好怎么做
    正确答案:	告诉老师和家长
    第2: 	变更注册商标的注册人地址,可以不用提出变更登记吗
    正确答案:	错误
    第3: 	气味可以申请注册为商标吗
    正确答案:	不可以
    第4: 	使用假冒机油滤清器有可能会造成下面哪些问题
    正确答案:	以下全是
    

    注:转载请说明出处

    展开全文
  • 想要做一个能自动从Mysql中取数并添加到excel指定位置的程序,如以下步骤: 第一步:使用Python 从Mysql中提取数据 import pymysql conn = pymysql.connect(host='localhost',user='root',passwd='QAZwsx...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    怎么能方便的判断某个单元格中包含多少个指定的字符?如何用查找函数 日期查找的问题 如何自动查找相同单元格内容 查找函数怎样对号入座(查找) 一个文本查找的问题 查找一列中最后一个数值 查找重复字符 请教查找...
  • csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格就可以存储为csv文件,文件内容是:No.,Name,Age,Score1,Apple,12...,如何用Python像操作Excel一样提取其中的一行,也就是一条...

    csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格

    2020213143819177.jpg

    就可以存储为csv文件,文件内容是:

    No.,Name,Age,Score

    1,Apple,12,98

    2,Ben,13,97

    3,Celia,14,96

    4,Dave,15,95

    假设上述csv文件保存为"A.csv",如何用Python像操作Excel一样提取其中的一行,也就是一条记录,利用Python自带的csv模块,有2种方法可以实现:

    方法一:reader

    第一种方法使用reader函数,接收一个可迭代的对象(比如csv文件),能返回一个生成器,就可以从其中解析出csv的内容:比如下面的代码可以读取csv的全部内容,以行为单位:

    import csv

    with open('A.csv','rb') as csvfile:

    reader = csv.reader(csvfile)

    rows = [row for row in reader]

    print rows

    得到:

    [['No.', 'Name', 'Age', 'Score'],

    ['1', 'Apple', '12', '98'],

    ['2', 'Ben', '13', '97'],

    ['3', 'Celia', '14', '96'],

    ['4', 'Dave', '15', '95']]

    要提取其中第二行,可以用下面的代码:

    import csv

    with open('A.csv','rb') as csvfile:

    reader = csv.reader(csvfile)

    for i,rows in enumerate(reader):

    if i == 2:

    row = rows

    print row

    得到:

    ['2', 'Ben', '13', '97']

    这种方法是通用的方法,要事先知道行号,比如Ben的记录在第2行,而不能根据'Ben'这个名字查询。这时可以采用第二种方法:

    方法二:DictReader

    第二种方法是使用DictReader,和reader函数类似,接收一个可迭代的对象,能返回一个生成器,但是返回的每一个单元格都放在一个字典的值内,而这个字典的键则是这个单元格的标题(即列头)。用下面的代码可以看到DictReader的结构:

    import csv

    with open('A.csv','rb') as csvfile:

    reader = csv.DictReader(csvfile)

    rows = [row for row in reader]

    print rows

    得到:

    [{'Age': '12', 'No.': '1', 'Score': '98', 'Name': 'Apple'},

    {'Age': '13', 'No.': '2', 'Score': '97', 'Name': 'Ben'},

    {'Age': '14', 'No.': '3', 'Score': '96', 'Name': 'Celia'},

    {'Age': '15', 'No.': '4', 'Score': '95', 'Name': 'Dave'}]

    如果我们想用DictReader读取csv的某一列,就可以用列的标题查询:

    import csv

    with open('A.csv','rb') as csvfile:

    reader = csv.DictReader(csvfile)

    for row in reader:

    if row['Name']=='Ben':

    print row

    就得到:

    {'Age': '13', 'No.': '2', 'Score': '97', 'Name': 'Ben'}

    可见,DictReader很适合读取csv的的行(记录)。

    展开全文
  • 怎么能方便的判断某个单元格中包含多少个指定的字符?如何用查找函数 日期查找的问题 如何自动查找相同单元格内容 查找函数怎样对号入座(查找) 一个文本查找的问题 查找一列中最后一个数值 查找重复字符 请教查找...
  • 之前项目里遇到一个需求,需要前端上传一个word文档,然后后端提取出该文档的指定位置的内容并保存。这里后端用的是nodejs,开始接到这个需求,发现无从下手,主要是没有处理过word这种类型的文档,怎么解析? Excel...
  • 之前项目里遇到一个需求,需要前端上传一个word文档,然后后端提取出该文档的指定位置的内容并保存。这里后端用的是nodejs,开始接到这个需求,发现无从下手,主要是没有处理过word这种类型的文档,怎么解析? Excel...

    动机

    之前项目里遇到一个需求,需要前端上传一个word文档,然后后端提取出该文档的指定位置的内容并保存。这里后端用的是nodejs,开始接到这个需求,发现无从下手,主要是没有处理过word这种类型的文档,怎么解析? Excel倒是有相关的库可以用,而且很简单

    思路

    搜索了好一会儿,在npm上发现了一个叫做adm-zip的包,这个包可以解压缩word文档,原来word文档也是可以解压缩的,之前一直不知道,通过如下代码就可以将word文档解压缩,并进一步提取内容

    var admZip = require('adm-zip');
    const zip = new admZip('test.docx');
    //将该docx解压到指定文件夹result下
    zip.extractAllTo("./result", /*overwrite*/true);
    复制代码

    首先我们新建一个docx文档,内容如下

    然后运行上述代码进行解压缩,得到如下的文件,由下图可以看出生成了好几个文件夹,word的内容其实是在word文件夹里的document.xml文件内(这里解压缩后其实源文件还在,并没有消失)

    进入word文件夹后的内容

    我们继续打开document.xml文件来一探究竟里面到底是啥?注意要用浏览器直接打开,如果用ide打开显示出的所有内容都在一行,无法阅读!

    上图只是word文档的一部分,会发现word文档内看着只有几段文字,但是xml中却是长篇大论,仔细分析下也很正常,xml全称可扩展标记语言,其被设计为传输和存储数据,它仅仅是一个纯文本的表示,而word中内容格式千变万化,肯定需要一种方法来有效描述这些内容的格式,因此采用了xml来描述

    我们尝试一下将测试文档四个字加粗变色倾斜字体,如下图

    然后再进行解压缩,得到docuemnt.xml并查看对应的内容,如下

    这就很明显了,<w:b/>表示文字加粗,<w:i/>表示文字倾斜,<w:color>表示文字的颜色,所以这么4个字就需要这几行xml来描述,因此长篇大论的xml也就不足为奇

    提取内容

    上面说到了xml仅仅是一个文本的表示,我们可以用如下代码读取整个xml的内容,结果是一个string

    var contentXml = zip.readAsText("word/document.xml");
    复制代码

    接下来是重点,如何提取我们想要的内容呢,答案是正则表达式,首先我们得分析一下word文档的结构,word文档其实是由叫做Paragraph的段落所构成,在vb中可以很轻松的获取并修改段落,官网传送门点此

    那么到底怎么样才是一个Paragraph呢,其实很简单,仔细观察word文档,见到下图中的小箭头了么,每个小箭头前面的内容就是一个段落,那么下图中一共有16个Paragraph,当然有些段落是空的,没有任何内容

    我们再来研究xml的结构,收起展开的xml,如下图,发现<w:p></w:p>这么个标签就是表示的一个段落,中间还有些<w:p>藏在表格内,这么一看表格前面3个段落,后面3个段落,和上图是对应的

    因此,我们就可以提取出每个段落的文本并返回一个数组,每一项就是一个段落的内容,这样就能够完整的解析出整个word的内容,关键在于如何提取每个<w:p>的内容,我们继续展开一个<w:p>进行观察,如下图,发现内容虽多,其实文本都保存在<w:t>中间,因此思路就清晰了,首先用正则表达式提取出所有<w:p>的内容,再针对每个<w:p>的内容,进行进一步正则提取,提取出其里面所有<w:t>的内容,并拼接在一起构成一个段落的总内容

    具体代码

    下面是具体的提取代码

    //参数是word文件名,第二个参数是回调表示解析完成
    var parser = function parseWordDocument(absoluteWordPath,callback){
    	//返回内容的数组
    	var resultList = [];
    	//如果文件存在
    	fs.exists(absoluteWordPath, function(exists){
    		if(exists){
    			//解压缩
    			const zip = new admZip(absoluteWordPath);
    			//将document.xml(解压缩后得到的文件)读取为text内容
    			var contentXml = zip.readAsText("word/document.xml");
    			//正则匹配出对应的<w:p>里面的内容,方法是先匹配<w:p>,再匹配里面的<w:t>,将匹配到的加起来即可
    			//注意?表示非贪婪模式(尽可能少匹配字符),否则只能匹配到一个<w:p></w:p>
    			var matchedWP = contentXml.match(/<w:p.*?>.*?<\/w:p>/gi);
    			//继续匹配每个<w:p></w:p>里面的<w:t>,这里必须判断matchedWP存在否则报错
    			if(matchedWP){
    				matchedWP.forEach(function(wpItem){
    					//注意这里<w:t>的匹配,有可能是<w:t xml:space="preserve">这种格式,需要特殊处理
    					var matchedWT = wpItem.match(/(<w:t>.*?<\/w:t>)|(<w:t\s.[^>]*?>.*?<\/w:t>)/gi);
    					var textContent = '';
    					if(matchedWT){
    						matchedWT.forEach(function(wtItem){
    							//如果不是<w:t xml:space="preserve">格式
    							if(wtItem.indexOf('xml:space')===-1){
    								textContent+=wtItem.slice(5,-6);
    							}else{
    								textContent+=wtItem.slice(26,-6);
    							}
    						});
    						resultList.push(textContent)
    					}
    				});
    				//解析完成
    				callback(resultList)
    			}
    		}else{
    			callback(resultList)
    		}
    	});
    };
    复制代码

    注意一下如果段落前有空格,那么<w:t>的格式是不同的,如下,多了这个space描述,所以需要特殊处理

    代码量其实很少,关键在于正则的编写,上述docx文档提取后的输出结果如下

    最后我把这个工具写成了一个npm包,地址点这里

    展开全文
  • 后续文章和内容会不断更新到 github项目 中,欢迎关注。 目录(善用Ctrl+F) 基础入门 新手 Golang开发新手常犯的50个错误 数据类型 连nil切片和空切片一不一样都不清楚?那BAT面试官只好让你回去等通知了...
  • asp.net知识库

    2015-06-18 08:45:45
    怎么在ASP.NET 2.0中使用Membership asp.net 2.0-实现数据访问(1) ASP.NET 2.0 新特性 .NET 2.0里使用强类型数据创建多层应用 在MastPage中引用脚本资源 2.0正式版中callback的一些变化+使用示例(ASP.NET 2.0)...
  •  bootcfg /rebuild 重复全部 Windows 安装过程并允许用户选择要添加的内容。  注意:使用 bootcfg /rebuild 之前,应先通过 bootcfg /copy 命令备份 boot.ini 文件。  bootcfg /scan 扫描用于 Windows 安装的...
  • arcgis工具

    2012-10-22 22:37:31
    最好把EXCEL保存为.csv文件去除一些不兼容的内容再连接。 转载ESRI论坛Lucy1114帖子说明: 12. 导出Shape格式为其他软件识别的打印格式如JEPG等格式 FILE/EXPORT MAP 然后选择相应的图片格式,此时也可设置答应...
  • vc++ 开发实例源码包

    2014-12-16 11:25:17
    Excel文件的导入和导出操作 如题。主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件...
  • vc++ 应用源码包_1

    热门讨论 2012-09-15 14:22:12
    Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,...
  • vc++ 应用源码包_2

    热门讨论 2012-09-15 14:27:40
    Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,...
  • vc++ 应用源码包_6

    热门讨论 2012-09-15 14:59:46
    Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,...
  • vc++ 应用源码包_5

    热门讨论 2012-09-15 14:45:16
    Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,...
  • vc++ 应用源码包_4

    热门讨论 2012-09-15 14:38:35
    Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,...
  • vc++ 应用源码包_3

    热门讨论 2012-09-15 14:33:15
    Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,...

空空如也

空空如也

1 2
收藏数 29
精华内容 11
关键字:

excel怎么提取指定内容