精华内容
下载资源
问答
  • 在表格中提取内容的函数
    千次阅读
    2022-04-27 14:47:26

    办公电脑是国产终端,银河麒麟系统,电子表格软件用的是永中表格。这软件用java编成,想写个自定义函数都要用java写,和微软office用vba写宏大不相同。本人仅此一点点C++编程基础,但是工作需要促使我学习,在查阅了大量资料后,终于写出了平生第一个java小程序,用来在永中表格自定义函数,提取出指定单元格的网址字符串。以下放出研究成果:

    在永中电子表格中,按alt+F11进入编辑页面,插入一个自定义函数,随便命名,然后贴粘以下代码。

    String getAdrs (String a)  
    {
        char [] s=a.substring(0,1).toCharArray();
        int col=(int)s[0]-64;
        int row =Integer.parseInt(a.substring(1));
        Worksheet sheet = Application.getWorkbooks().getActiveWorkbook() .getWorksheets().getActiveWorksheet();    
        if(sheet.getHyperlinks().hasHyperlink(row,col)){
            String hyperlink = sheet.getHyperlinks().getHyperlink(row,col).getAddress();
            return hyperlink; 
        }    
     return 0; 
    }


    在电子表格中,可以使用如"=getAdrs(B2)"形式的函数来提取出B2单元格的网址。

    更多相关内容
  • 2021新函数excel函数公式大全模板教程电子表格Excel office wps
  • 有时,我们将一些文本导入Excel。这些文本包含中文,字母,数字...提取文本左侧的数据当单元格的数字位于左侧,文本内容位于右侧时,我们可以使用以下公式快速提取数字。函数公式:“ = LEFT(A2,2 * LEN(A 2) -LEN...

    8dbeb07a7d229f25521a1acbcf30ed57.png

    94fe727e2ee316c16b5726a91c4f177c.gif

    有时,我们将一些文本导入Excel。这些文本包含中文,字母,数字,并且全部堆积在一个单元格中。但是,我们只需要数字。那么,如何快速从中文,字母和数字中提取数字呢?在这里,王小老师将为您分享一些实用的函数公式。相信将来,每个人都会有用!

    提取文本左侧的数据

    36912b181d4b055f02ac998ed6f47003.png

    当单元格中的数字位于左侧,文本内容位于右侧时,我们可以使用以下公式快速提取数字。

    函数公式:“ = LEFT(A2,2 * LEN(A 2) -LENB(A 2)))”

    eba26fb2bb6ebccddca74f384a63cf89.gif

    60bce37a44c7d4228a225e25c8741a50.png

    提取文本右侧的数据

    当单元格中的数字在右侧,而中文内容在左侧时,我们可以使用此公式。

    函数公式:“ = RIGHT(A2,2 * LEN(A 2) -LENB(A 2))]”

    90532730cac16ea740875cb39ef9283f.png

    2f6e250c213f039bcb5a95d08ad86eb8.gif

    从文本中提取数据

    如果单元格中有很多中文,中间是数字,我们应该如何快速提取数字?

    函数公式:“ = MIDB(A2,SEARCHB(”?“,A 2),2 * LEN(A 2) -LENB(A 2))”)

    f170845b54d0e9ccfefcd47ac258ec57.gif

    从混合文本中提取数据

    如果单元格中出现中文,字母,数字等字符,但我们只想提取数字,则可以尝试使用此公式。

    函数公式:“ = SUM(MID(0&A2,LARGE(ISNUMBER(-MID(A2,ROW($ 1:$ 102 4),1)]))* ROW($ 1:$ 102 4),ROW( $ 1:$ 30 8))+ 1,1) * 10 ^ ROW($ 1:$ 30 8) / 1 0)“输入公式后,使用组合键“ Ctrl + Shitf + Enter”。

    本文来自电脑杂谈,转载请注明本文网址:

    http://www.pc-fly.com/a/shumachanpin/article-317857-1.html

    展开全文
  • Python 批量提取 Word 中表格内容,一键写入 Excel

    千次阅读 多人点赞 2021-03-31 00:40:59
    案例思想是源于前两天帮读者做了一个 demo ,需求大致将一上百个 word 中表格内容提取出来(所有word 中表格样式一样),把提取到的内容自动存入 Excel word 中表格形式如下 目前含有数个上面形式的 word 文档需要...

    关注公众号:【小张Python】,为你准备了 50+ 本Python 精品电子书籍 与 50G + 优质视频学习资料,后台回复关键字:1024 即可获取;如果对博文内容有什么疑问,后台添加作者【个人微信】,可与作者直接进行交流

    Hello,我是小张,大家好久不见~

    今天文章介绍一个实战案例,与自动化办公相关;案例思想是源于前两天帮读者做了一个 demo ,需求大致将一上百个 word 中表格内容提取出来(所有word 中表格样式一样),把提取到的内容自动存入 Excel 中

    word 中表格形式如下

    image-20210326232115393

    目前含有数个上面形式的 word 文档需要整理,目标是利用 python 自动生成下面形式 excel 表格

    image-20210326232712833

    正式案例讲解之前,先看一下转换效果,脚本先把指定文件夹下的 doc 文件转化为 docx ,随后自动生成一个 excel 表格,表格内中即为所有 word 中的内容

    Word_excel

    涉及的库

    本案例中用到的 Python 库有以下几个

    python-docx
    pandas
    os
    pywin32
    

    doc 转化为 docx

    本案例中 word 中表格内容的提取用到的是 python-docx 库,关于 python-docx 一些基础用法可以参考

    word 文档有时是以 doc 类型保存的, python-docx 只能处理 docx 文件类型,在提取表格内容之前,需进行一次文件类型格式转换:把 doc 批量转化为 docx

    doc 转 docx 最简单的方式 通过Office 中 word 组件打开 doc 文件,然后手动保存为 docx 文件,对于单个文档这个方法还行,文档数量达到上百个的话还用这种方法就有点烦了,

    这里介绍一个 python 库 pywin32 来帮助我们解决这个问题,pywin32 作为扩展模块, 里面封装了大量 Windows API 函数,例如调用 Office 等应用组件、删除指定文件、获取鼠标坐标等等

    利用 pywin32 控制Office 中 Word 组件自动完成 打开、保存 操作,把所有 doc 文件类型转化为 docx 文件类型,步骤分为以下三步:

    1,建立一个 word 组件

    from win32com import client as wc
    word = wc.Dispatch('Word.Application')
    

    2,打开 word 文件

    doc = word.Documents.Open(path)
    

    3,保存关闭

    doc.SaveAs(save_path,12, False, "", True, "", False, False, False, False)
    doc.Close()
    

    完整代码

    	path_list = os.listdir(path)
        doc_list = [os.path.join(path,str(i)) for i in path_list if str(i).endswith('doc')]
        word = wc.Dispatch('Word.Application')
        print(doc_list)
        for path in doc_list:
            print(path)
            save_path = str(path).replace('doc','docx')
            doc = word.Documents.Open(path)
            doc.SaveAs(save_path,12, False, "", True, "", False, False, False, False)
            doc.Close()
            print('{} Save sucessfully '.format(save_path))
        word.Quit()
    

    docx 库提取单个表格内容

    在批量操作之前,首先需要搞定单个表格中的内容,只要我们搞定了单个 word,剩下的加一个递归即可

    用 docx 库对 word 中表格内容提取,主要用到 Table、rows、cells 等对象

    image-20210327095933680

    Table 表示表格,rows 表示表格中行列表,以迭代器形式存在;cells 表示单元格列表,也是以迭代器形式

    image-20210327003517662

    操作之前,需了解下面几个基础函数

    • 通过 Document 函数读取文件路径,返回一个 Document 对象

    • Document.tables 可返回 word 中的表格列表;

    • table.rows 返回表格中的行列表;

    • row.cells 返回该行中含有的单元格列表;

    • cell.text 返回该单元格中文本信息

    了解了上面内容之后,接下来的操作思路就比较清晰了;word 表格中文本信息可以通过两个 for 循环来完成:第一个 for 循环获取表格中所有行对象,第二个 for 循环定位每一行的单元格,借助 cell.text 获取单元格文本内容;

    用代码试一下这个思路是否可行

    	document = docx.Document(doc_path)
        for table in document.tables:
            for row_index,row in enumerate(table.rows):
                for col_index,cell in enumerate(row.cells):
                    print(' pos index is ({},{})'.format(row_index,col_index))
                    print('cell text is {}'.format(cell.text))
    

    会发现,最终提取到的内容是有重复的,,,

    image-20210327101337122

    出现上面原因,是由于单元格合并问题,例如下面表格的单元格 合并了 (1,1)->(1,5),docx 库在处理这类合并单元格 时并没有当成一个,而是以单个形式进行处理,因此 for 迭代时 (1,1)->(1,5) 单元格返回了五个,每一个单元格文本信息都返回

    image-20210327101720736

    面对以上文本重复问题,需要添加一个去重机制, 姓名、性别、年龄...学历学位 等字段作为列名 col_keys,后面王五、女、37、... 学士 等作为col_values,提取时设定一个索引,偶数为 col_keys, 奇数为 col_vaues ;

    代码重构后如下:

    	document = docx.Document(doc_path)
        col_keys = [] # 获取列名
        col_values = [] # 获取列值
        index_num = 0
        # 添加一个去重机制
        fore_str = ''
        for table in document.tables:
            for row_index,row in enumerate(table.rows):
                for col_index,cell in enumerate(row.cells):
                    if fore_str != cell.text:
                        if index_num % 2==0:
                            col_keys.append(cell.text)
                        else:
                            col_values.append(cell.text)
                        fore_str = cell.text
                        index_num +=1
    
        print(f'col keys is {col_keys}')
        print(f'col values is {col_values}')
    

    最终提取后的效果如下

    image-20210327121716805

    批量 word 提取,保存至 csv 文件中

    能够处理单个 word 文件之后,一个递归即可提取到所有 word 文本表格内容,最后利用 pandas 把获取到的数据写入到 csv 文件即可!

    def GetData_frompath(doc_path):
        document = docx.Document(doc_path)
        col_keys = [] # 获取列名
        col_values = [] # 获取列值
        index_num = 0
        # 添加一个去重机制
        fore_str = ''
        for table in document.tables:
            for row_index,row in enumerate(table.rows):
                for col_index,cell in enumerate(row.cells):
                    if fore_str != cell.text:
                        if index_num % 2==0:
                            col_keys.append(cell.text)
                        else:
                            col_values.append(cell.text)
                        fore_str = cell.text
                        index_num +=1
        return col_keys,col_values
    
    pd_data = []
    for index,single_path in enumerate(wordlist_path):
        col_names,col_values = GetData_frompath(single_path)
        if index == 0:
            pd_data.append(col_names)
            pd_data.append(col_values)
        else:
            pd_data.append(col_values)
    
    df = pd.DataFrame(pd_data)
    df.to_csv(word_paths+'/result.csv', encoding='utf_8_sig',index=False)
    

    证件号、身份证号格式

    打开生成的 csv 文件会发现联系方式、身份证号 两栏的数字格式是以数值存储,不是我们想要的类型,想要完整展示,需存储之前把数值转化为文本

    image-20210327122744514

    解决方法,找到所在的单元格,前面元素前面加一个 ’\t‘ 制表符即可

    col_values[7] = '\t'+col_values[7]
    col_values[8] = '\t'+col_values[8]
    

    image-20210327123301512

    源码获取

    本案例中用到的 源码数据获取方式,关注微信公号:小张Python ,在公众号后台回复关键字:210328 即可!

    小结

    本案例中只用到了 docx 库中的一部分方法,主要涉及到了 word 中 Table 的基本操作,对于一些从事文职工作的同学来说日常工作中可能会遇到上面相似问题,因此特意分享在这里,希望能够对大家有所帮助

    好了,以上就是本篇文章的全部内容了,最后感谢大家的阅读,我们下期见!

    展开全文
  • 怎么从表格中提取省份信息

    千次阅读 2021-08-28 18:04:09
    1.打开Excel文件,如下图表格中含有一些地址信息,现在我们想要将其中的省份提取出来。 2.首先我们选中这些数据单元格区域 3.然后点击下图选项(Excel工具箱,百度即可了解详细下载安装信息,本文这里...

    今天小编跟大家分享一下Excel如何快速从混合单元格中提取省份信息。

    1.打开Excel文件,如下图表格中含有一些地址信息,现在我们想要将其中的省份提取出来。

    2.首先我们选中这些数据单元格区域

    3.然后点击下图选项(Excel工具箱,百度即可了解详细下载安装信息,本文这里就不做详细解说。)

    4.接着点击更多,选择【提取地址】

    5.点击【确定】

    6.最后选择一个合适的存放位置即可完成

    7.完成效果如下图所示

    展开全文
  • 如何Google表格中使用QUERY函数

    千次阅读 2020-10-08 22:11:52
    如果您的标头分布两个单元格,例如A1的“第一”和A2的“名称”,则将指定QUERY使用前两行的内容作为组合标头。 In the example below, a sheet (called “Staff List”) of a Google Sheets spreadsheet ...
  • 一、Left函数 left(数据范围,抓取字数) 二、Right函数 right(数据范围,抓取字数) ...输出商品名称:由于商品名称长度不一样,所以可以以“-”为参照,输出“-”这个符号左边的全部内容, ...
  • 基于OpenCV的表格文本内容提取

    千次阅读 2022-01-25 01:14:22
    点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达小伙伴们可能会觉得从图像中提取文本是一件很麻烦的事情,尤其是需要提取大量文本时。PyTesseract是一种光学字符识...
  • 文章目录一、LEFT、RIGHT、MID、FIND、LEN函数1.1 LEFT函数1.2 RIGHT函数1.3 MID函数1.4 FIND函数1.5 LEN函数二、例子2.1 截取品名2.2 截取性别2.3 截取尺寸 一、LEFT、RIGHT、MID、FIND、LEN函数 1.1 LEFT函数 ...
  • 点上方“菜鸟学Python”,选择“星标” 第491篇原创干货,第一时间送达 最近有许多小伙伴想要一些自动化办公的福利小程序,今天就满足大家的需求。日常的办公过程,总少不了批量提取wor...
  • 亲爱哒不好意思,刚刚才看到问题我们函数的时候说:MID用来检索一个单元格的信息,A2表示单元格,3表示第三排,2表示检索后面的两位;IF函数的用法包括三部分(逗号隔开):第一部分就是判断条件,就是你要拿...
  • 如何用Excel表格中的if函数来判断成绩及格不及格腾讯视频/爱奇艺/优酷/外卖 充值4折起今天给大家介绍一下如何用Excel表格中的if函数来判断成绩及格不及格的具体操作步骤。1. 打开电脑后,找到我们需要设置的Excel...
  • 详细说明如何利用python对文本的中文、英文、数字等进行提取,可以供表格处理使用,可以通过进一步的函数的定义处理整个excel或者txt文档。
  • Excel表格常用函数

    千次阅读 2021-11-20 19:13:51
    MATCH 函数返回指定值搜索区域的相对位置。 match(查找值,查询范围,0) (1)、匹配类型 match(查找值,查询范围,0) 0是匹配类型,匹配类型参数有0、1、-1三种。 0为精确匹配, 即搜索区域查找完全等于指定值...
  • 为引用的文本字串个数:需要引用的个数RIGHT(从右向左)选取方式方式如LEFT类似MID:按条件引用(按规定的方式引用)依次输入需要引用的文本、从第几个字符位置开始、我们需要引用的字符个数excel用什么函数可以提取出...
  • excel表格中身份证信息提取出生年月日,年龄,性别,出生地 excel表格中身份证信息提取出生年月日,年龄,性别,出生地身份证号码的意义1.年龄2.出生年月3.性别4.代码实现 出生地1.```报错:ModuleNotFoundError: ...
  • 需求是这样的,在表格中添加了按钮,通过信号槽会进行按钮点击事件。 但表格中按钮的操作往往都会和该行的行号相关,一下是获取行号的方法。 // 按钮点击的信号槽,正常是不会传递行号参数的 connect(btn_edit,...
  • 下面就给大家讲一些WPS表格中最常用的文本提取函数,LEFT MID RIGHT函数的应用,能够快速的帮助大家录入文本。我们可以采用这种文本函数的方法进行快速录入,如下图:首先,我们编号下面的单元...
  • 可以VBA定义一个正则表达式函数,然后Excel就可以调用了。VBA代码如下(VBA高亮无效,凑合着看):1.Function ExStr(Str As String, Parttern As String, ActionID As Integer, Optional RepStr As String = "")...
  • 自定义Excel函数.xlam

    2020-03-13 23:35:10
    VBA自定义函数,TEXTJOIN、SWITCH (低版本使用TEXTJOIN、SWITCH这两个函数
  • 从GSuite / Workspace中提取有关用户的目录信息,并将结果放入Google表格中 根据关于EDUCAUSE GSuite社区小组的讨论,我一天的午餐时间花了大约30分钟时间将它们汇总一起。 您应该能够根据需要更改custom.gs...
  • 因此花了好多时间做数据清洗,没有什么经验,就是自己摸索,然后发现可以使用excel做一些很便利的数据清洗,比如数据出现中文和一些数据出现都逗号,一个简答的通过excel处理中文数据的方法就是利用函数: ...
  • df = pd.read_excel(filename,index_col=0) # 即指定第一列为行索引 print(df) print('第0行第1列的数据为:',df.iloc[0,1]) print('第three行第二列的数据为:',df.loc['three','二'])
  • 学习python的时候写的用python来处理excel表格的20个函数(包括批量提取表格数据,批量处理表格数据等),内含详细注释和说明,可用于python自动化办公入门学习。
  • Excel如何提取单元格的部分文字或单元格的数字 Excel如何提取单元格的部分文字或单元格的数字,整理了Excel所有的提取要求,写成了一个公式翻译工具。 支持以下提取方式,输入提取要求,自动生成Excel...
  • EXCEL怎样提取部分特定的文本?

    千次阅读 2022-06-02 11:32:42
    b1单元格中使用函数“MID”进行指定部分文本的提取操作,该函数中的参数分别为源数据单元格,截取位置,截取长度。3函数输入完成后,单击回车可以看到已经得到想要的姓名了,同样的使用该函数对其他部分特定文字...
  • 用Python提取pdf文件表格数据

    千次阅读 2020-12-29 05:53:28
    访问http://www.wuhanstring.com/uploads/5_aboutus/爬虫俱乐部-用户问题登记表.docx(复制到浏览器)下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱statatraining@163.com,我们会及时为您解答哟~爬虫俱乐部...
  • 如何Excel表中提取想要的数据?

    千次阅读 2021-02-11 23:15:23
    一、公式提取法EXCEL提取数据的常用函数有3个,Left、Right、Mid函数函数解析和语法格式等如下:二、快速填充法它是EXCEL2013以上版本的中一个新功能。运用快速填充时,首先直接输入一组到三组数据,让Excel...
  • python提取pdf表格数据并保存到excel

    千次阅读 2022-04-16 08:22:35
    python开源库pdfplumber,可以较为方便地获取pdf的各种信息,包含pdf的基本信息(作者、创建时间、修改时间…)及表格、文本、图片等信息,基本可以满足较为简单的格式转换功能。 一、pdfplumber安装及导入 跟其他包...
  • 智能动态提取每行数据(Indirect函数).xls

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,831
精华内容 20,332
热门标签
关键字:

在表格中提取内容的函数