精华内容
下载资源
问答
  • Python将文件夹中的照片按名字与Excel的数据对应并排序,重命名
    2021-04-12 11:36:35

    Python将文件夹中的照片按名字与Excel中的数据对应并排序,重命名

    文件夹中是人的照片,照片名是人名,格式是任意图片格式。

    目标是按照Excel中表“st”的顺序将他们重新排序,通过重命名来表现排序的结果。

    代码如下:

    import xlrd
    import os
    
    class BatchRename():
        '''
        批量重命名文件夹中的图片文件
    
        '''
            
    
        def rename(self):
            self.path = 'D:/code/rename/photos'  #表示需要命名处理的文件夹
            excel_path = 'D:/code/rename/formnew.xls'   # Excel文件路径
            names=[]
            names.append("")
            print('Excel文件的路径:' + excel_path)
            excel_file = xlrd.open_workbook(excel_path)             # 打开Excel文件
            # table = excel_file.sheet_by_index(1)                  # 通过索引打开
            table = excel_file.sheet_by_name('st')              # 通过表格名字打开
            #table = excel_file.sheets()[1]                          # 通过索引打开
            print('已经打开的工作簿的名字:' + table.name)
            print('**********开始读取Excel单元格的内容**********')
    
            for i in range(table.nrows):         
                cell_value = table.cell(i, 0).value         # 获取单元格内容,0列对应名字列
                print(cell_value)                           # 先看看有哪些名字
                names.append(cell_value)
                # Logger().info('[' + ', '.join("'" + str(element) + "'" for element in row_content) + ']')
                # Logger().info(all_content)
    
            if not(os.path.exists("D:/code/rename/photos/new/")):
                os.makedirs("D:/code/rename/photos/new/")
            filelist = os.listdir(self.path) #获取文件路径
            total_num = len(filelist) #获取文件长度(个数)
            i = -1  #表示文件的命名是从1开始的
            for name in names:
                i = i + 1
                print(name+"::===========================================================::")
                for item in filelist:
                    if name!="" and item.startswith(name):  #初始的图片的格式为jpg格式的(或者源文件是png格式及其他格式,后面的转换格式就可以调整为自己需要的格式即可)
                        src = os.path.join(os.path.abspath(self.path), item)
                        print(src)
                        dst = os.path.join(os.path.abspath(self.path), 'new')#处理后的格式也为jpg格式的,当然这里可以改成png格式
                        dst = os.path.join(dst, str(i)+'-'+item.split('.')[0] + '-' + str(i) + '.jpg')
                        print(dst)
                        #dst = os.path.join(os.path.abspath(self.path), '0000' + format(str(i), '0>3s') + '.jpg')    这种情况下的命名格式为0000000.jpg形式,可以自主定义想要的格式
                        try:
                            os.rename(src, dst)
                            print ('converting %s to %s ...' % (src, dst))
                            break
                        except:
                            continue
                            print("error--------------------------------------------")
            print ('total %d to rename & converted %d jpgs' % (total_num, i))
    
    
            #如果数据量较大( >10000条 )可以优化算法:将EXCEL名字和序号扫描丢入哈希表,按照名称将照片和键值对快速排序,双指针动态搜索,匹配,复制。
            #时间复杂度O(n*n)>>O(nlogn)
    
    if __name__ == '__main__':
        demo = BatchRename()
        demo.rename()
    
    更多相关内容
  • 大数据处理经常要用到一堆表格,然后需要把数据导入一个list中进行各种算法分析,简单讲一下自己的做法: 1.如何读取excel文件 网上的版本很多,...#根据索引获取Excel表格中的数据 参数:file:Excel文件路径 co
  • 文件夹中庞大的excel(.xlsx)文件提取并整合数据 Input 需要从文件夹提取有格式的单个数据格并汇总。 例如: 2017-2020x市蚊虫数据/2018/7月/abcds方法统计.xlsx Output 每年每个月的数据 例如: 年 月...

    从文件夹中庞大的excel(.xlsx)文件中提取并整合数据

    Input

    需要从文件夹树中提取有格式的单个数据格并汇总。
    例如:
    2017-2020x市蚊虫数据/2018/7月/abcds方法统计.xlsx

    Output

    每年中每个月的数据
    例如:

    xx县统计结果yy县统计结果
    201713.54.5
    201725.53.5

    思路

    得到所有文件的绝对路径

    file_collection = []
    for dir, subDir, files in os.walk(path):
        # print(dir,'\t', subDir,'\t', files)
        for file in files:
            in_path = dir + '/' + file
            file_collection.append(in_path)
    # print(file_collection)
    

    匹配目标文件名

    key_files_name = []  #
    for str in file_collection:
        key_files_name.append(re.findall(r'.*' + key_file_name + '.*', str))  # findall如果找不到会返回空值,只需要输入关键字即可找到文件全名
    
    key_file_name_df = pd.DataFrame(key_files_name, columns=['file_name'])
    key_file_name_df = key_file_name_df.dropna()  # 丢掉空值
    key_file_name_df.reset_index(drop=True, inplace=True)  # 重设索引,drop=True表示丢掉原本的索引
    # print(key_file_name_df)
    
    ym_sheets_name = pd.DataFrame([], columns=get_columns(key_sheet_name))
    

    匹配日期

    这里要用正则表达式DIY自己要匹配的日期格式

    for i, file in enumerate(key_file_name_df['file_name']):
        year = re.findall(r'\\.*\\', file)  # 匹配年份
        year[0] = year[0][1:5]  # 去掉开头和结尾的\\
        month = []
        if year[0] == '2018':
            month = re.findall(r'年(.*)月', file)  # 用年和月之间的值来匹配月份
        else:
            month = re.findall(r'\\(.*)月\/', file)  # 用月和\来匹配月份
            month[0] = month[0][5:]
    
        if len(month[0]) == 1:  # 将 1,2,3等月份改为01,02,03等
            month[0] = '0' + month[0]
        ym = np.concatenate((year, month))
        # print(ym)
    

    匹配目标sheet

    try:
        work_book = xlrd.open_workbook(file)
    except:
        print('无法打开')
    
    print(file)
    sheets_name = work_book.sheet_names()
    # print(sheets_name)
    
    for key in key_sheet_name:
        sheet = match_blur_names(work_book,key) # 自定义的函数,完整代码在下方
        # if key in sheets_name:
        #     sheet = work_book.sheet_by_name(key)
        if sheet is not None:
            cell_value = sheet.cell_value(key_cell_xy[0], key_cell_xy[1])
            ym = np.append(ym, cell_value)
    
    print(ym)
    if len(ym) == len(ym_sheets_name.columns):  # 排除无关数据
        ym_sheets_name.loc[i] = ym
    

    再规范最终数据

    排序,重设index

    ym_sheets_name.sort_values(by=['Year', 'Month'], inplace=True) #根据年和月排序
    ym_sheets_name.reset_index(drop=True, inplace=True)
    print(ym_sheets_name)
    

    保存数据

    偷懒保存为csv,当然可以DIY成别的格式了

    ym_sheets_name.to_csv('E:/2017-2020/' + key_file_name + '汇总.csv', encoding='gbk',index=False) # 保存为csv
    

    完整代码

    import os
    import re
    import pandas as pd
    import numpy as np
    import xlrd
    
    path = "E:/2017-2020/2018-2020x市蚊虫密度"  # 文件夹目录
    
    
    # key_file_name: 要提取的文件的关键字,用于检索该文件
    # key_sheet_name: 要提取的文件中的sheet名字
    # key_cell_xy: 提取的数据在sheet中的横纵坐标
    
    def get_key_cell_xy(excel_xy):
        excel_xy[0]-=1
        excel_xy[1] = ord(excel_xy[1]) - ord('A')
        print(excel_xy)
        return excel_xy
    
    def get_columns(key_sheet_name):
        columns = ['Year', 'Month'] # 前两列固定是年和月
        for key_name in key_sheet_name:
            columns.append(key_name)
        return columns
    
    def match_blur_names(work_book, sheet_name):
        new_sheet_name = re.findall(sheet_name,str(work_book.sheet_names()))
        print(work_book.sheet_names())
        print(new_sheet_name)
        if new_sheet_name:
            sheet = work_book.sheet_by_name(new_sheet_name[0])
            return sheet
        return None
    
    def search_for_key_value(key_file_name, key_sheet_name, key_cell_xy):
        # 读取所有文件并将文件名保存在file_collection
        file_collection = []
        for dir, subDir, files in os.walk(path):
            # print(dir,'\t', subDir,'\t', files)
            for file in files:
                in_path = dir + '/' + file
                file_collection.append(in_path)
        # print(file_collection)
    
        # 匹配文件名
        key_files_name = []  #
        for str in file_collection:
            key_files_name.append(re.findall(r'.*' + key_file_name + '.*', str))  # findall如果找不到会返回空值
    
        key_file_name_df = pd.DataFrame(key_files_name, columns=['file_name'])
        key_file_name_df = key_file_name_df.dropna()  # 丢掉空值
        key_file_name_df.reset_index(drop=True, inplace=True)  # 重设索引,drop=True表示丢掉原本的索引
        # print(key_file_name_df)
    
        ym_sheets_name = pd.DataFrame([], columns=get_columns(key_sheet_name))
    
        # 匹配日期
    
        for i, file in enumerate(key_file_name_df['file_name']):
            year = re.findall(r'\\.*\\', file)  # 匹配年份
            year[0] = year[0][1:5]  # 去掉开头和结尾的\\
            month = []
            if year[0] == '2018':
                month = re.findall(r'年(.*)月', file)  # 用年和月之间的值来匹配月份
            else:
                month = re.findall(r'\\(.*)月\/', file)  # 用月和\来匹配月份
                month[0] = month[0][5:]
    
            if len(month[0]) == 1:  # 将 1,2,3等月份改为01,02,03等
                month[0] = '0' + month[0]
            ym = np.concatenate((year, month))
            # print(ym)
    
        # 将目标sheet中每个月(假如有)的数据提取出来
            try:
                work_book = xlrd.open_workbook(file)
            except:
                print('无法打开')
    
            print(file)
            sheets_name = work_book.sheet_names()
            # print(sheets_name)
    
            for key in key_sheet_name:
                sheet = match_blur_names(work_book,key)
                # if key in sheets_name:
                #     sheet = work_book.sheet_by_name(key)
                if sheet is not None:
                    cell_value = sheet.cell_value(key_cell_xy[0], key_cell_xy[1])
                    ym = np.append(ym, cell_value)
    
            print(ym)
            if len(ym) == len(ym_sheets_name.columns):  # 排除无关数据
                ym_sheets_name.loc[i] = ym
    
        ym_sheets_name.sort_values(by=['Year', 'Month'], inplace=True)
        ym_sheets_name.reset_index(drop=True, inplace=True)
        print(ym_sheets_name)
    
        ym_sheets_name.to_csv('E:/2017-2020蚊虫密度/' + key_file_name + '市汇总.csv', encoding='gbk',index=False) # 保存为csv
    
    
    if __name__ == '__main__':
        key_files_name = ['x','y','z','balala'] # 可使用正则表达式查找文件名
        # key_sheets_name = [['a[区]?汇总[ ]*','b[区]?汇总[ ]*','c[区]?汇总[ ]*'],['a[区]?汇总[ ]*','b[区]?汇总[ ]*','c[区]?汇总[ ]*'],
        #                    ['a[区]?汇总[ ]*','b[区]?汇总[ ]*','c[区]?汇总[ ]*'],['a[区]?汇总[ ]*','b[区]?汇总[ ]*','c[区]?汇总[ ]*']]
        key_sheets_name = [['市汇总'],['市汇总'],['市汇总'],['市汇总']] # 可使用正则表达式查找sheet
        key_cells_xy = [[7,'I'], [13,'I'], [19, 'I'],[7,'I']] # 直接对应excel里的一个点的坐标,仅支持[数字, 字母]
        for cell_xy in key_cells_xy:
            cell_xy = get_key_cell_xy(cell_xy)
        for i in range(4):
            search_for_key_value(key_files_name[i], key_sheets_name[i], key_cells_xy[i])
    
    
    
    
    
    
    展开全文
  • 案例思想是源于前两天帮读者做了一个 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 的基本操作,对于一些从事文职工作的同学来说日常工作中可能会遇到上面相似问题,因此特意分享在这里,希望能够对大家有所帮助

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

    展开全文
  • “*.xls*”)可以同时打开文件夹中的xls文件。 Sub all_excel_files() Dim path As String, filename As String Dim w As Workbook, ws As Workbook With Application.FileDialog(msoFileDialogFo

    参考:
    VBA 合并同文件夹下多工作簿中同名工作表到 一工作簿一工作表

    2022/1/19 更新
    跳过不含指定sheet的工作薄并汇总。

    Sub Build_Sheet_List()
        Dim sht As Worksheet, i As Long, strName As String
        With Columns(1)
            .Clear '清空A列数据
            .NumberFormat = "@" '设置文本格式
        End With
        For i = 1 To Sheets.Count '索引法遍历工作表集合
            strName = Sheets(i).Name '表名
            Cells(i, 1).Value = strName
            ActiveSheet.Hyperlinks.Add anchor:=Cells(i, 1), Address:="", _
                    SubAddress:="'" & strName & "'!a1", TextToDisplay:=strName
        Next
    End Sub
    
    Sub all_excel_files()
        Dim path As String, filename As String
        Dim w As Workbook, ws As Workbook
        With Application.FileDialog(msoFileDialogFolderPicker)
        '-------------------取得用户选择的文件夹路径---------------------------
        If .Show Then path = .SelectedItems(1) Else Exit Sub
        End With
        If Right(path, 1) <> "\" Then path = path & "\"
        filename = Dir(path & "\*.xls*")
        Application.DisplayAlerts = False
        '-------------------取得用户选择的合并工作表名---------------------------
        strKey = InputBox("请输入需要合并的工作表名:", "提醒")
        If StrPtr(strKey) = 0 Then Exit Sub
        '-----------打开指定文件夹下的工作薄,复制粘贴工作表到汇总表,重命名--------------------
        Set ws = Workbooks.Add
        Do While filename <> ""
            'w代表指定文件夹下每个找到的excel文件
            Set w = Workbooks.Open(path & "\" & filename)
                '选择工作表,复制,并粘贴为汇总表的最后一张
              If strKey = ActiveSheet.Name Then
                    w.Sheets(strKey).Copy after:=ws.Sheets(ws.Sheets.Count)
                   ' 重命名刚贴的表名为excel文件名
                    If Right(filename, 4) = "xls*" Then ws.Worksheets(ws.Sheets.Count).Name = Mid(filename, 1, Len(filename) - 4) Else ws.Worksheets(ws.Sheets.Count).Name = Mid(filename, 1, Len(filename) - 5)
                End If
            ' 关闭工作簿
            w.Close
            '下一个
            filename = Dir
        Loop
        '-----------制作目录工作表--------------------
        Sheets("Sheet1").Name = "目录"
        Sheets("目录").Select
        Call Build_Sheet_List
        Application.DisplayAlerts = True
        ws.SaveAs path & "\汇总.xlsx"
    End Sub
    
    

    将所汇总的数据逐个添加到同一工作表中见下载链接:
    https://download.csdn.net/download/weixin_42750611/76744062
    效果如下:
    在这里插入图片描述

    2020/8/10
    在原先代码的基础上修改,可以自由选择和输入要合并多工作簿的同文件夹和工作表名,并生成目录页。
    效果展示:
    1、选择工作表在这里插入图片描述

    2、输入指定相同工作表名

    在这里插入图片描述
    3、等待程序执行完毕。在这里插入图片描述
    代码如下:

    Sub Build_Sheet_List()
        Dim sht As Worksheet, i As Long, strName As String
        With Columns(1)
            .Clear '清空A列数据
            .NumberFormat = "@" '设置文本格式
        End With
        For i = 1 To Sheets.Count '索引法遍历工作表集合
            strName = Sheets(i).Name '表名
            Cells(i, 1).Value = strName
            ActiveSheet.Hyperlinks.Add anchor:=Cells(i, 1), Address:="", _
                    SubAddress:="'" & strName & "'!a1", TextToDisplay:=strName
        Next
    End Sub
    
    Sub all_excel_files()
        Dim path As String, filename As String
        Dim w As Workbook, ws As Workbook
        With Application.FileDialog(msoFileDialogFolderPicker)
        '-------------------取得用户选择的文件夹路径---------------------------
        If .Show Then path = .SelectedItems(1) Else Exit Sub
        End With
        If Right(path, 1) <> "\" Then path = path & "\"
        filename = Dir(path & "\*.xls")
        Application.DisplayAlerts = False
        '-------------------取得用户选择的合并工作表名---------------------------
        strKey = InputBox("请输入需要合并的工作表名:", "提醒")
        If StrPtr(strKey) = 0 Then Exit Sub
        '-----------打开指定文件夹下的工作薄,复制粘贴工作表到汇总表,重命名--------------------
        Set ws = Workbooks.Add
        Do While filename <> ""
            'w代表指定文件夹下每个找到的excel文件
            Set w = Workbooks.Open(path & "\" & filename)
                '选择工作表,复制,并粘贴为汇总表的最后一张
                If strKey <> ActiveSheet.Name Then w.Close
                If strKey <> ActiveSheet.Name Then MsgBox "该文件夹内存在不含指定工作表名的工作薄,请重新检查!", 64, "提示": Exit Sub
                w.Sheets(strKey).Copy after:=ws.Sheets(ws.Sheets.Count)
                 '重命名刚贴的表名为excel文件名
                If Right(filename, 4) = ".xls" Then ws.Worksheets(ws.Sheets.Count).Name = Mid(filename, 1, Len(filename) - 4) Else ws.Worksheets(ws.Sheets.Count).Name = Mid(filename, 1, Len(filename) - 5)
            '关闭工作簿
            w.Close
            '下一个
            filename = Dir
        Loop
        '-----------制作目录工作表--------------------
        Sheets("Sheet1").Name = "目录"
        Sheets("目录").Select
        Call Build_Sheet_List
        Application.DisplayAlerts = True
        ws.SaveAs path & "\汇总.xlsx"
    End Sub
    
    

    小提示:
    1、如果只想打开文件夹内的xlsx文件filename = Dir(path & "\*.xls")改为filename = Dir(path & "\*.xlsx*")可以同时打开文件夹中的xls文件。

    展开全文
  • 首先,简单描述问题,如下的表格中想姓名一栏当中相同名信息排,该怎么去处理。2.选中姓名这一列的数据,选中的标志就是表格的粗黑线,之后,依次“开始”选项卡上选择:“编辑”-“排序和筛选”-“自定义排序...
  • # 行合并 df_concated = pd.concat(dfs) # 构造输出目录的绝对路径 out_path = os.path.join(dir, 'res.xlsx') # 输出到excel表格中,并删除pandas默认的index列 df_concated.to_excel(out_path, sheet_name='Sheet1...
  • EJB容器 简介 本节讲解EJB项目Weblogic和Was上的部署需要注意设置的一些内容.不同的中间件对EJB支持方式不一样,所以配置的原理也略有差异. 关键 ... CATransition CATransition *transition = [CATransition ...
  • 大数据处理经常要用到一堆表格,然后需要把数据导入一个list进行各种算法分析,简单讲一下自己的做法:1.如何读取excel文件网上的版本很多,xlrd模块基础上,找到一些源码:import xdrlib ,sysimport xlrddef ...
  • 这里使用python来写,很快速,可以直接移动过去,也可复制过去(不改变源文件夹中图片的数量)。 import xlrd import os import shutil # 打开文件 data = xlrd.open_workbook('C:/Users/zll/Desktop/新建文件夹...
  • LaTeX 中表格和图片的目录

    千次阅读 2020-11-03 12:41:43
    表格和图片的目录可以让读者快速定位文档某些特定的内容。本篇文章介绍如何文档创建图片或表格的目录,以及如何改变目录的默认标题。
  • matlab版本: function [names,class_num] = GetFiles(sourceDir) files = dir(sourceDir); size0 = size(files); length = size0(1);... % names(i).name即可获取到对应的文件夹名称 class_num = size(names...
  • 有的时候,我们需要读取图片名,写入表格中,以便结合图片的其他信息,做进一步的分析
  • 下面,您可以找到两个表格,它们与本书的第一版和第二版的重构相关。 每个章节都有两个表,一个表的索引基于第一个版本,而一个表的索引基于第二个版本。 第二列在索引列的相反版本具有代表。 如果您人们有...
  • MySQLInnoDB索引数据结构(B+树)详解 参考文章:CodingLabs - MySQL索引背后的数据结构及算法原理...2、MySQL的数据用各种不同的技术存储文件(或内存),这些技术的每一种技术都使用不同的存储机制,索引
  • 您只能编写关键字列,因此应用程序会自动同一文件夹中创建文件夹,并电子表格上添加文件夹ID,而不是您自己。 不要忘记使用V8引擎运行脚本。(您可以“运行”菜单上找到) 当您使用选项“ moveEtc”为true...
  • Java读取Excel表格中的数据

    万次阅读 多人点赞 2020-12-28 18:34:06
    Eclipse工程下新建lib文件夹2.复制jar包3.将jar包粘贴到Eclipse4.配置构建路径二、案例代码1.新建类2.获取Excel文件查看Excel文件位置的方法:3.获取指定的sheet页码4.获取单元格数据5.关闭工作簿资源三、运行...
  • sqldb2es是一个Java应用程序,它从JDBC数据源(表格数据)获取数据,以供以结构化(JSon)数据格式进行索引。 sqldb2es允许通过将ElasticSearch JSon对象(也称为文档)映射到SQL数据库关系数据来定义它们的结构...
  • 文件夹表格的创建

    2018-07-30 21:03:34
    以前的文章提到过,我们获取的数据的保存,之前介绍了数据库的创建和操作,今天主要分享一下文件夹表格的创建 首先是文件夹 首先引入相关的包 import os  import shutil 这里指的一提的是 第二个包比第...
  • Python 识别图片中表格

    千次阅读 2019-01-12 12:11:18
    to_string(image,"eng") # txt = pytesser3.image_to_string(image, "chi_sim") txt = pytesseract.image_to_string(image, "chi_sim") print("{}识别内容:{}".format(file,txt)) for i in range(16): img_file = r...
  • 展开全部问:WORD里边怎样设置每...文件——页面设置——版式——页眉和页脚——首页不同问:请问word怎样让每一章用不同的页眉?怎么我现在只能用一个页眉,一改就全部改了?答:插入分隔符里,选插入分节符,...
  • 利用 pandas 将多张 excel 表的指定列数据合并成一张;因为原始的多张数据存在同样列名的数据, 因为原始多张 excel 是从 csv 文件转换股 并且我们只需要其中的部分列数据,所以进行指定列提取并汇总至 res 文件...
  • 从pdf提取图片、表格、公式

    千次阅读 2021-01-25 20:15:41
    print('\n') for page in pdf.pages: # 获取当前页面的全部文本信息,包括表格中的文字 # print(page.extract_text()) for table in page.extract_tables(): # print(table) for row in table: print(row) for j in ...
  • \\1')#获取文件夹下的word文档列表print(spam)for i in spam:  doc=docx.Document('D:\\1\\{}'.format(i))  doc.add_paragraph('world')  doc.save('D:\\1\\{}'.format(i))#注意...
  • 分割,并且转为excel文件后可能同一个名称的列不同一列,比如同样是Paid Price名称的列,一个文件AL列,两一个AO列,如果单纯的读取所有文件并合并的话就会导致数据错列排放,网上找了很多教程并没有现成的...
  • public class NPOIHelper { /// <summary> /// 输出模板docx文档 /// </summary> /// <param name="tempFilePath">模板文件地址</param>...输出文件夹</param > //...
  • 使用smart 3D进行三位立体建模的时候由于...会data文件夹下生成如下图的多个文件夹。 进行合并操作需要使用S3C文件进行索引,文件可以下面的链接下载 链接: https://pan.baidu.com/s/1clSdTFTbOW5Lghs3W8ZwF
  • iOS上识别excel表格内容的Demo,可以识别xlsx格式文件的内容。... xl文件夹下的sheet文件记录着每个格子(A1,A2)的值shareStrings文件的位置索引, 解析这两个文件就可得到对应的xlsx的文件内容

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,589
精华内容 7,835
关键字:

在文件夹中索引中表格中内容