Board logo

标题: [文本处理] BAT脚本怎样取提xlsx格式文件最后一行合并成新文件? [打印本页]

作者: msyimf    时间: 2023-3-18 09:00     标题: BAT脚本怎样取提xlsx格式文件最后一行合并成新文件?

有多个.xlsx格式一样的的文件,想做个BAT把所有.xlsx文件最后一行的数据,复制且合并起来存成一个新的.xlsx
作者: jyswjjgdwtdtj    时间: 2023-3-18 10:44

本帖最后由 jyswjjgdwtdtj 于 2023-3-18 10:46 编辑

bat不太可能
如果不是xls二十csv到是可以
作者: cbbos    时间: 2023-3-18 10:53

试试这个。
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. set "input_file=test.xlsx"
  4. set "output_file=result.xlsx"
  5. :: Extract the last row from input file
  6. for /f "tokens=1* delims=:" %%a in ('findstr /n "^" "%input_file%"') do (
  7.     set "last_line=%%b"
  8. )
  9. :: Create a new file with extracted last row
  10. echo !last_line! > "%output_file%"
复制代码
在上面的代码中,您需要将input_file变量设置为您要从其中提取最后一行的xlsx文件的名称,并将output_file变量设置为要将提取的最后一行复制到的新文件的名称。

该脚本使用findstr命令在输入文件中查找行号,并将结果存储在last_line变量中。然后,它将提取的最后一行复制到新文件中。

请注意,此脚本仅限于提取文本数据而不包含任何Excel文件中可能存在的格式化或公式。如果您需要保留格式和公式,请考虑使用专业的Excel库或工具来完成此任务。
作者: jyswjjgdwtdtj    时间: 2023-3-18 10:57

本帖最后由 jyswjjgdwtdtj 于 2023-3-18 10:59 编辑

回复 3# cbbos


    啊 兄弟 xlsx是二进制文件欸!
csv才是文本文件!
照你这么说是不是xlsx的格式是这样
        1        2        3        4        5        6
1        bala        lava                                gala
2        xx        jj        kk        ll        bb        nn
3        iji        bnb                                njn
?
作者: pd1    时间: 2023-3-18 15:31

需要先安装ImportExcel模块,具体的方法百度搜下吧
然后直接在powershell里执行
  1. Import-Module ImportExcel
  2. $a=dir *.xlsx|%{(Import-Excel -Path $_.FullName -NoHeader)[-1]}
  3. Export-Excel -Path "./result.xlsx" -InputObject $a -NoHeader
复制代码

作者: jyswjjgdwtdtj    时间: 2023-3-18 18:48

本帖最后由 jyswjjgdwtdtj 于 2023-3-18 18:51 编辑

vbs可以不用安装其他东西(ps应该也可以调用com吧)
前提是你的电脑里有office或者wps
可惜我没怎么用过excel……




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2