小运行, 哎,看起来还不错,他已经拆分出来了, 今天我们来试着用泡奥特美彩来拆分工作部, 那么可以看到这边有一个测试表格,他有三个工作表,那么我们要把这一个有三个表格的工作部拆成只有一个表的三个工作部。 那么,呃,有很多情况下也是有实际的需求的。我前段时间也遇到一个朋友问我,那当时还是用 vba 去做的,那 vba 提 是也很方便,你就便利这有几个工作表就可以了,然后把这里面的数据拉出来,然后去创建新的工作部啊,就可以了。那么用 pole mate 的话, 他是带有很多 excel 的操作的嘛,那我觉得应该也是可以的。那我们来试一下。那首先,呃,先把这关了吧。嗯,总规第一步是启动 excel, 嗯,他默认是使用空白文档,那我们要把它改成打开以下文档那路径,要告诉他路径的话,可以把这个路径复制一下。 嗯,不想去慢慢找了,直接复制给他, 那么这一步他就会帮我们打开这个表格,可以看到是可以正常运行的。然后呢,我们势必要去获取这三个工作表的名字, 那么要获取工作表的话,我们来找一下对应的操作啊。 哎,这还有点难找啊,我们来搜索一下吧。 获取所有 x 要工作表,那么他会问你要获取哪个 x 要实力的工作表,那我们上面只有一个 x 要实力,那就是这个啦。 呃,刚才还可以看到它会生成变量,变量是细层。詹姆斯,那看起来会是一个数组啊,里面可以储存多个。呃,表,多个工作表,那我们估计是要用上循环了。播一曲 佛一曲,然后我们要佛一曲的是 shit name, 让我来尝试一下。然后我, 我们要获取每个工作表里面的内容。那这样子的话我们可以试一下。在 excel 里有一个操作,应该是看一下这个获取活动 excel 工作表 应该还是跟工作表有关,我们来搜一下。 设置活动 excel 工作表,那么我觉得可以先把就 循环到的这个工作表设成活动工作表,然后再获取活动工作表的所有内容,然后去新建一个表格,把之前内容给呃复制进去,然后再另存就可以了。那我来试一下。那么他问你 工作表名称,那肯定是卡润特艾特,因为他在循环嘛,他循环会把我们的三个工作表一个一个循环到,那么循环的当前值就是我们要获取的工作表名称, 那么把它设置活动以后,我们要获取它里面的内容,从 excel 工作表中获取。呃,读取,我来试一下。啊。 嗯,他会问你要获取什么吗?啊?我看一下工作表中所有可用值,那我觉得这个应该就是呃 比较适合的吧。我,我们要获取呃当前循环中的工作表里的所有内容,然后保存,然后 后的话就要新建一个了。新建一个表格了,在 excel 里面看一下。怎么老是不能一眼找到 excel? 在这里启动 excel, 使用空白文档,然后变量是二。 ok, 然后是写入,写入的话,写入到二里面要写入的值是刚才的 excel data, 然后写入在哪里当前活动的单元格上,觉得就写入在第一行第一列,试试吧。 呃,写好以后,理论上是要把它另存一下。另存一下我觉得。嗯,我可以先测试一下啊, 小运行 哎,看起来还不错,他已经拆分出来了,那接下来就是要把这些拆分出来的内容另存一下。 那么另存到哪里的话,我觉得测试嘛,就还是另存到这里好了啊,把这个也关了, 看一下保存的功能在哪里?保存 x 应该就是。 呃,保存文档啊,另存为,然后另存为的话应该就可以设置路径,对,实力的话是二啊, 文档路径刚才复制了一下,然后他这个文档 路径应该是包括了这个名字的,就前面是放在哪个文件夹里,然后后面要把名字告诉他,那么名字的话,这里可以选择变量, carren, title, ctritlette 们会是名字吗?看一下 试一下吧。应该可以啊。保存了以后我们要关掉他的,关掉,这里有关闭 excel 的功能,把这个二给关了,不保存哦,所以这边就有另存为了。 所以说我不用保存,在关闭可以直接在关闭的时候告诉他保存在哪里,这样可以精简步骤。好的,那我 再来试一下。 好,我们回这个。呃,文件家里看一下,他已经另存好了。好,打开也是很正常的样子。 好的,那么这个小小的啊, pa 就设计好了,也不是很难, 基本上都是,呃,不用什么基础就可以看懂的一些操作了啊,大家如果有类似的需求也可以去尝试一下。那么感谢你的观看,拜拜。
粉丝1055获赞2751




现在我们需要写一个模块来获取到表格中的一些信息,那以这个获取表格中的班级信息为例, get classes 这个表格呢?它是在桌面上的, 所以我要先获取到桌面上这个表格的位置,给到用户去使用的话,可以让他选择一下这个文件。运行这个程序以后呢,他弹个窗口,让你去选一下文件一,再选下文件二,然后根据这个东西去做操作。现在咱们先把它写死了得了, 这个是处理文件路径,然后用 pandas 去读它里面的信息做分析,得装一下 pandas 模块,不装它就直接就报错了。 no module named pandas 这个地方拍层包管里装一下,可能需要花两分钟时间。他装的这个过程中,咱们看一下这个表 桌面上的这个新建叉 s 工作表,我们要获取这个表的班级这一列,看看他有几个班级,就一个吧,这一个他不具备代表性啊,你不是还有两个班的情况, 改一改吧,可能这个班一部分学生是一班的,一部分学生是四班的。那这个表我先给他保存一下, successful 已经装好了, 再运行,他就不会报错了。我现在拿到桌面的路径,这里面是引导的,叉 bot viewer 给了一个接口,能够拿到桌面 的路径,就是换了不同的电脑,他桌面的路径都能够找得到。叉 board viewer 获取系统文件夹路径,桌面是一种特殊的系统文件夹, desktop 叉 board viewer 这个下面的 directory get special directory, special directory name 等于 desktop 桌面的 directory, 这样他就能拿到桌面的路径。咱们输出看一下桌面, 然后要去拼接一下这个 desktop, 它是字符串类型的,你看它这个 type, 它输出的是字符串类型。首先我要把它做成 pass 类的对象, pass 加括号,把这个字符串 传进去,他就变成了 pass 类的对象,这个对象的身上有好多方便使用的方法和属性,你看现在就变成了 class, 变成这种数据类型,他后面就可以直接去连接桌面上的。 对,连接表明桌面上叫这个名字,这个表明是字后串,加上引号,现在你在运行看他就是桌面上的这个路径,那我就应该去打开它,获取里面的班级的信息就好了。我一点点去拼接潘达斯就是 这个包,这个包是一个数据统计分析的,这个包上面这个 pass 是路径处理的这么一个包导入 pandas as, 起了个别名叫 pd。 pandas 的包里面有 read excel, 这里就写路径, 这个路径叫 desktop 就不合适了,就叫 x 啊, excel 的,或者 excel excel s, 这道是低版本的 excel, 它的 pass, 它的路径,这个路径放到这里面, 他就应该会有一个值。你这个 d 版本呢?他说还要依赖于 x l r d, 缺一个包, d 版本好像要用到 x l r d, 那再补个包呗。 excel red, 这是一个比较古老的包了,新的就不用。这个 d 版本应该 大部分电脑都是 wps 的或者是 office, 你只有 office 零三, office 零七都支持高版本了,所以现在一般没有必要去支持到他了,那电脑得多老了。补了这个包以后,你看他就能读出来这个信息了, 你关心的是班级这一列的信息,就是读完了他,但是他有一个问题是你这个表里可能还有还会有别的表,比如说第一个表是 shit 二,第二个表才是 shit 一,这种情况下读他就会出问题, 他就是 empty, 他读到的是位置在第一个的,所以他还得加一个参数,叫 sheet name 是考勤呢?还是课程表呢?还是啥?这里他叫 sheet 啊,我写成 sheet 一在运行, 他就能够读到后面这个表,读到后面我只关心班级,所以点班级就好了,他就能拿到班级这一列。这不班级列都是一一四四吗?嗯,然后点 unique, unique, unique 唯一的值 就是一和四了。 uniq 可能是个方法,再加上括号啊,一和四,然后你不是要变成一班逗号四班是吧?这个东西可能还得再变一下,点 to list, 把它变成拍成里面的标准的列表,他这样变完不是列表,你看刚才没逗号,这个东西变成列表了, 变成列表以后,呃,再去处理一下他,那这个就可以叫做 classes list, 先拿到这个班级的列表,然后再变成你要的那种自付穿的形式,下面就处理一下他好了。处理他的方式是 这个列表推导式,一个循环,呃,里面的每一项吧。 in 这个列表里面,这不是循环,它里面的每一项,每一项它有点问题,每一项它是要处理一下。 可以用 f 字符串班嘛,你要写个班几几班,这里放一个 i 变量,他我用一个临时变量来表示一下,现在输出这个就变成一班四班,但是你要变成一班逗号四班,所以 这个类似它呢,它需要拼一下逗号字符串对象,它有一个 join 方法连接,把这个列表放到 join 里面,它就连成了那个字符串了。 classes spr, 再数数看一下, 现在你看一班四班,这就是你想要的字符串。呃,这是那个班级的列表循环这个班级的列表先要把它加上一个班,然后再用逗号连起来,这个是 shin, 得分两步走吧,这就搞定了。呃, 可以通过全局变量, ok, 也可以不用全局变量。不用全局变量怎么写呢?就是这儿定一个函数,这个叫获取,比如说叫考勤表获取,考勤表中的班级都可以写中文的, 不规范吧,但是他不会报错。调用这个模块获取考勤表中的班级信息,最后是打印,你不要打印,你去 return, 返回, 把这个注销也可以。那你在别的模块中去调用他调用这个模块的这个方法,他就知道去读这个文件过去以后就返回掉了。再写一个模块去调用,他在这个 model 仪里面去调用。 get the classes, 前面要把这个保险导进来。 from 点 import get classes, 这是在 model e 这个模块中去导入了 get classes 这个模块, 或者说你可以把所有的获取的那个表格的信息都写到这,那这个叫 get classes 就不合适了,可以叫 get 信息,这样就能少写很多全局变量。原来那么写是临时对付一下,导入它以后,下面去调用它就是 get classes, 点儿就是那个中文的方法。 我去,不提示吗?啊,写错了,这是 get info, 它一一般是会提示的,不需要写这么多 get info, 点选上它,然后你知道这里面不用传参数,它自己能找见那个文件,你要传参数的话,你把文件名传进去, 传个变量,他就直接拼接上,也可以写死了也可以写死了不好吧,我先给你跑通啊。 print classes, 这个是这个模块里的变量,它的作用范围 就在这个模块,换了模块也叫同名的,但是不一样,就好像。呃,一般的张三跟二班的张三那是两个。张三这个 model e 里的 class classes swing 跟 get 音符,这个下面的 classes swing 就是两个,两个变量,好吧,还有变量的作用范围。 呃,这样就可以了,你你运行,你看他这就出的就是一版四版,但是这样不太好。这我希望他这个名字 是变量给传过去。那我这里就可以写一个 x l s 内啊,表明包含扩展名, 可以给他个默认值,就就等于他是可以的,默认值就是他。但是这个名字不好啊,这个地方就写成写成他了,写成变量了,可以吧。哎,好,那调用的时候呢,你就可以给参数了,就不一定叫这个 名字。看现在我电话的时候,我不给他用的就是默认值,运行他是能够成功的。那我现在这个名字肯定不合适吧,我应该改成叫 日志或者叫课堂日志啊。我叫这个名字以后呢,再去调用,他就该报错了,他那个默认的值就没有,他说读不到这个表,默认值没有 没有呢,我这里给到他一个参数叫课堂日质变叉 ls 在运行,他就又能读到了,这样就是传过去的,有这个文件名,他知道这个桌面上得叫这个名字,甚至可以传完整的路径。就举个例子, 那返回值这个函数,它有个返回值,用它接受打印出来,那这就是变量了,这是在你的那个主流程里面,该 怎么用怎么用,可以吗?可以了吧?能搞了吧?能,应该能,哈哈,能搞,我把这两百块给你吧。这两百块给你自己搞搞。看了 可视化怎么写是吧?这个是 get 音符,我在可视化里怎么去调用这个 get 音符的信息?选这个流程应用的调用模块,因为你调用的不是。呃,那个流程的默认的 me 方法, 调的是他定自己定义的方法,喊选 get 音符,这样就不用敲代码的,选起来方便一点。选用函数,选择获取考勤标准班级信息。这不是告诉你有参数吗?而且告诉默认参数是这个。那你改吧,这个地方就改课堂日志,然后返回值的类型。你知道他返回是自付穿,选择自付穿 存储到这里面,这个可以改成 classy the screen 什么的,不改就叫这个名字也可以。好,他掉了以后下一个再写 打印日志,把上面调用它的这个变量笔选上,就选它就好了,再运行它也一样可以的,一样返回的一般四般,但这个 invoke result 就是这个一半四半的信息,你在可视化里面去填也可以的,行吗?行。呃,我是不爱用鼠标,所以这这个携带吧,不用鼠标键盘就能搞定。好,那你试试喽。好好的,哥。

