如何在Ex中保存一堆“.xls”文件

2024-06-07 04:12:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要处理大量的.xls文件,这些文件来自这个叫做Aperio的显微图像分析软件(在使用Aperio进行分析后,它允许您将数据导出为“只读”xls格式。“另存为”仅适用于Mac电脑上的Excel,在windows计算机上,“另存为”按钮将灰显,因为文件受到保护)。不幸的是,这些文件的头不是标准的OLE2格式。因此,除非在Microsoft Excel中手动加载并逐个另存为.xls,否则无法使用Java API POI获取它们。在

由于目录中有很多这样的目录,手动执行“另存为”会非常痛苦。有没有一种方法可以编写一个Java程序来自动将这些文件保存为标准xls文件?如果Java是不可能的,那么还有什么语言可以处理这种情况呢,Python?在

编辑:

我在hex reader中加载了其中一个文件,如下所示: 09 04 06 00 07 00 10 00 00 00 5C 00 04 00 05 4D 44 41 80 00 08 00 00 00 00 00 00 00 00 92 00 19 00 06 00 00 00 00 F0 F0 00 00 00 00 00 00 FF FF FF 00 00 00 00 00 00 FF FF FF 00 00 00 02 00 01 00 0D 00 02 00 00 64 00 0E 00 02 00 01 00 0F 00 02 00 01 00 11 00 02 00 00 00 22 00 02 00 00 2A 00 02 00 00 2B 00 02 00 00 00 02 00 00 25 02 00 00 00 00 FF 00 1F00 02 00 22 00 1E 04 0A 00 00 00 07 47 65 6E 65 72 61 6C 1E 04 04 00 00 01 30 1E 04 07 00 00 00 04 30 2E 30 30 30 1E 04 08 00 00 00 05 23 2C 23 30 1E 04 04 0B 00 00 00 08 23 2C 23 30 2E 30 30 1E 04 18 00 00 00 00 15 23 2C 23 30 5F F0 5F 2E 3B 5C 2D 23 23 23 23 30 5F F0 5F 1E 04 1D 00 00 00 00 1A 23 2C 23 30 5F F0 5F 2E 3B 5B 52 65 64 5D 5C23 23 2c23 23 23 23 23 30 5 f F0 5 F0 5 F0 2E e e e e 04 e e e 00 00 00 00 1B 23 23 23 23 23 23 30 30 2E 30 30 30 5F F0 5 F0 5F F0 2E 2E 3B 3B 3c23 23 23 23 23 30 30 30 30 30 5F F0 F0 5 F0 5 F0 5 F0 2E 3e 3B 3B 2b 5B 52 65 65 24 24 5 d 5D 5D 5C 2d23 23 23 23 23 23 23 23 23 23 30 30 2E 30 30 5 F0 F0 2E e e 4 4 4 4 18 18 00 00 00 00 20 23 23 23 23 23 23 23 30 22 F0 22 F0 22 24 24 24 24 22 F0 22 F0 2E 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 04 1日00时00 1A 23 2C 23 23 30 22 F0 2E 22 3B 5B 52 65 64 5D 5C 2D 23 2C 23 30 22 F0 2E 22 1E 04 1E 00 00 00 1B 23 2C 23 30 2E 30 30 22 F0 2E 22 3B 5C 2D 23 2C 23 23 30 2E 30 30 22 F0 2E 22 1E 04 23 00 00 00 00 20 23 2C 23 30 23 30 2E 30 22 F0 2E 22 3B 5B 52 65 64 5D 5C 2D 23 2C 23 23 30 22 F0 2E 22 1E 04 05 00 00 00 02 30 25 1E 04 00 00 0005 30 30 30 30 30 30 30 25 1E 04 0 B 00 00 00 00 08 30 30 30 30 45 2B 30 30 2B 30 30 30 1E 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 22 22 22 2 3 F 3 F 3 F 4 E 0 0 0 D 0 0 0 0 0 A 64 64 4 2 D 6 D D 6 D D 6 D 6 D 2 F 79 79 79 79 79 79 79 79 1 E 4 0 0 0 0 0 0 0 0 0 6 6 4 4 4 2 D 6 D 6 D 6 D 6 D 6 D 2 F 79 9 9 9 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6 6 6 6 6 6 6 6 D 6 D 6 D 6 D 6 D 6 D 6 D 6 D 6 D 6 D 6 D 6 D 6 D 2 2 2 2 2 2 2 2 4 F 4 4 4 4 4 4 4 4 4 4 4 4 4 00点68 3Ad 6D d d 6D 5d 5C 20 41 4D 2F 50 4D 4D e 04 11 11 00 00 00 0 e 68 3A 6D d d 3A 73 73 5C 20 20 41 4D 4D 2F 50 4D 4D 4D 4 07 07 07 00 00 00 00 04 04 68 3A 6D d d d d d 3d 3A 73 73 73 1E 04 13 00 00 00 00 00 00 00 00 10 6 4 4 4 2 d d d d d d 2d 2fd 2d 2f79 79 79 79 79 79 79 79 79 8 8 8 8 8 8 8 8 8 8 23 23 30 30 20 20 23 23 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 20 20 20 20 20 20 20 20 20 20 08 08 08 08 08 08 08 08 00 00 00 00 00 00 00 00 00 00 00 00 04年3600 00 00 00 00 00 00 00 00 33 5F 2D 2A 2A 20 23 23 23 23 23 30 30 22 f02E 22 5F 2D 3B 5C 2D 2A 2A 20 23 23 23 23 30 22 F0 2f22f222f2d22 22 F0 22f2222f222f2d222f22222f2d222d332f22d333f2f2222222222222222222222222222222222222222222222222222222222222222f2222222f22222222222222222222222222204第3页00 00 00 00 00 00 00 00 00 3B 5F 2f2d22d2a 20 23 23 23 23 23 23 23 30 2E 30 30 22 F0 2E 22 5f2f2d333c2d222c23 23 23 23 23 23 30 2E 30 30 22 F0 22 F0 2f2f22f2d3f2f2f22f222f222f2d3f22f222f22d40 5f2d22222o2c22c23 23 23 23 23 23 23 23 23 30 2E 30 30 5f0f05f2f2f222f2222222f222222222222222222f2222222222222222f22222223楼3F 5F F0 5F 2E 5F 2D 3B 5F 2D 40 5F 2D 31 00 14 00 A0 00 00 08 00 0D 4D 53 20 53 61 6E 73 20 53 65 72 66 31 00 14 00 A0 00 00 00 00 00 0D 4D 53 20 53 61 6E 73 20 53 65 72 69 66 31 00


Tags: 文件数据图像目录标准软件格式手动
3条回答

使用JODConverter。您有一个excel4.0文件;对于apachepoi来说太旧了。在

好吧,既然您提到了Python,那么您可以使用^{}来读取文件(它声称支持非常旧的Excel文件)。写回它们可以用^{}完成。为了方便起见,^{}提供了一个复制工具来桥接xlrd和{}。所有这些都描述了here。值得注意的是,该页面上的PDF被称为教程,但它同时也是所有三个包的实际手册。在

你反对只用Excel宏来做吗?VBA不是很优雅,但它非常适合与Excel文件操作相关的所有事情。这将是在目录中搜索.xls文件、创建新目录并将这些.xls文件重新保存到新目录中的代码:

Sub Resave_Files()

    ' Directory to search for .xls files.
    file_directory = "C:\Bobby\Temp"

    ' Create a temporary directory to save files.
    temp_directory = ActiveWorkbook.Path & "\Temp"
    If Dir(temp_directory, vbDirectory) = "" Then
         MkDir temp_directory
    End If

    ' Resave each .xls file in the temporary directory.
    Dim fs, f
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(file_directory)
    For Each f1 In f.Files
        If (Right(f1.Name, Len(".xls")) = ".xls") Then
            wb_name = ActiveWorkbook.Name
            Set data_wb = Workbooks.Open(f1.Name)
            New_Name = temp_directory + "\" + Left(f1.Name, InStr    (f1.Name, ".xls") - 1) + "_new.xlsx"
            data_wb.SaveAs Filename:=New_Name
            data_wb.Close SaveChanges:=False
        End If
    Next

End Sub

相关问题 更多 >