欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Python實(shí)現(xiàn)XLS和XLSX之間的相互轉(zhuǎn)換

 更新時(shí)間:2024年09月18日 10:25:04   作者:Eiceblue  
在日常工作中,我們經(jīng)常需要處理和轉(zhuǎn)換不同格式的Excel文件,以適應(yīng)不同的需求和軟件兼容性,Excel文件的兩種常見格式是XLS(Excel 97-2003)和XLSX(Excel 2007及以上版本),本文將詳細(xì)介紹如何使用Python在XLS和XLSX格式之間進(jìn)行轉(zhuǎn)換,需要的朋友可以參考下

Python庫安裝

所需Python庫 - Spire.XLS for Python。該P(yáng)ython庫支持多種對Excel文檔的編程操作,包括創(chuàng)建、讀取、編輯、轉(zhuǎn)換等。可以通過此鏈接下載產(chǎn)品包后再從本地路徑安裝,也可以直接使用以下pip命令安裝:

pip install Spire.XLS

XLS格式與XLSX格式互轉(zhuǎn)

XLSX格式因其基于XML的結(jié)構(gòu)、更強(qiáng)大的功能支持和安全性,成為現(xiàn)代Excel文件處理的首選格式。而XLS格式則因其在較舊版本的Excel中的兼容性和特定功能的使用而仍有其特定的應(yīng)用場景。

要使用Python在這兩種格式件實(shí)現(xiàn)靈活轉(zhuǎn)換,參考以下步驟:

  • 創(chuàng)建 Workbook 工作簿對象;
  • 使用 LoadFromFile() 方法加載 .xls 或 .xlsx文件;
  • 使用 SaveToFile(fileName, version) 方法實(shí)現(xiàn)轉(zhuǎn)換。

代碼示例如下:

Python 將XLS轉(zhuǎn)為XLSX

from spire.xls import *
from spire.xls.common import *
 
# 加載XLSX文件
workbook = Workbook()
workbook.LoadFromFile("示例.xlsx")
 
# 將XLSX文件另存為XLS格式
workbook.SaveToFile("Xlsx轉(zhuǎn)Xls.xls", ExcelVersion.Version97to2003)
workbook.Dispose()

Python 將XLSX轉(zhuǎn)為XLS

from spire.xls import *
from spire.xls.common import *
 
# 加載XLS文件
workbook = Workbook()
workbook.LoadFromFile("示例.xls")
 
# 將XLS文件另存為XLSX格式
workbook.SaveToFile("Xls轉(zhuǎn)Xlsx.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

拓展:實(shí)現(xiàn)Excel文件xls與xlsx格式批量互相轉(zhuǎn)換

python實(shí)現(xiàn)方法

將文件夾中的所有xls或xlsx文件轉(zhuǎn)換為xlsx或xls文件

import win32com.client as win32  # 需安裝pywin32
import os.path
import glob

excel = win32.gencache.EnsureDispatch('Excel.Application')

#簡易使用方法
#filename = r'E:\xlsx\1.xls'
#wb = excel.Workbooks.Open(filename)
#wb.SaveAs(filename+'x', FileFormat=51)  #FileFormat=51 是 .xlsx 的擴(kuò)展
#wb.Close()                              #FileFormat=56 是 .xls 的擴(kuò)展
#excel.Application.Quit()

def xls2xlsx(xls_path, xlsx_path):
    # xls_path參數(shù)為待轉(zhuǎn)換的xls文件所在文件夾
    # xlsx_path參數(shù)為轉(zhuǎn)換完成的xlsx文件保存文件夾
    # 當(dāng)xlsx保存文件夾存在同名原xls時(shí),會(huì)彈窗提示是否替換,建議保存至空文件夾?

    path_list = glob.glob(xls_path + '\\*.xls')  # 獲取文件夾下所有xls
    for file in path_list:
        filename = os.path.basename(file).replace('.xls', '.xlsx')  # 獲取文件名
        wb = excel.Workbooks.Open(file)
        wb.SaveAs(xlsx_path + '\\' + filename, FileFormat=51)  # xlsx為51
        wb.Close()
    excel.Application.Quit()
    print('xls2xlsx轉(zhuǎn)換完成')

def xlsx2xls(xlsx_path, xls_path):
    # xlsx_path參數(shù)為待轉(zhuǎn)換的xlsx文件所在文件夾
    # xls_path參數(shù)為轉(zhuǎn)換完成的xls文件保存文件夾
    # 當(dāng)xls保存文件夾存在同名原xlsx時(shí),會(huì)彈窗提示是否替換,建議保存至空文件夾?

    path_list = glob.glob(xlsx_path + '\\*.xlsx')  # 獲取文件夾下所有xlsx
    for file in path_list:
        filename = os.path.basename(file).replace('.xlsx', '.xls')  # 獲取文件名
        wb = excel.Workbooks.Open(file)
        wb.SaveAs(xls_path + '\\' + filename, FileFormat=56)  # xls為56
        wb.Close()
    excel.Application.Quit()
    print('xlsx2xls轉(zhuǎn)換完成')


if __name__ == '__main__':
    xls_path = r'E:\xlsx\xls'
    xlsx_path = r'E:\xlsx\xlsx'
    xls2xlsx(xls_path, xlsx_path)
    #xlsx2xls(xlsx_path, xls_path)

VBA實(shí)現(xiàn)方法

將文件夾中的所有xls或xlsx文件轉(zhuǎn)換為xlsx或xls文件;保存時(shí)如果存在同名文件,則會(huì)覆蓋

Function xls2xlsx(xls_path$, save_path$)
    '將xls_path文件夾中所有xls文件轉(zhuǎn)為xlsx格式,保存至save_path文件夾;注意同名覆蓋
    Dim fso As Object, wb As Workbook, save_file$
    Application.ScreenUpdating = False  '關(guān)閉屏幕更新,加快程序運(yùn)行
    Application.DisplayAlerts = False   '不顯示警告信息
    Set fso = CreateObject("Scripting.FileSystemObject")
    If Not fso.FolderExists(save_path) Then fso.CreateFolder (save_path)  '創(chuàng)建文件夾
    For Each f In fso.GetFolder(xls_path).Files  '遍歷文件夾里文件
        If fso.GetExtensionName(f.Name) = "xls" Then
            save_file = save_path & "\" & f.Name & "x"  '保存文件全名(文件路徑、文件名、擴(kuò)展名)
            Set wb = Workbooks.Open(f)
            wb.SaveAs filename:=save_file, FileFormat:=xlOpenXMLWorkbook
            wb.Close (False)
        End If
    Next
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Function

Function xlsx2xls(xlsx_path$, save_path$)
    '將xlsx_path文件夾中所有xlsx文件轉(zhuǎn)為xls格式,保存至save_path文件夾;注意同名覆蓋
    Dim fso As Object, wb As Workbook, save_file$
    Application.ScreenUpdating = False  '關(guān)閉屏幕更新,加快程序運(yùn)行
    Application.DisplayAlerts = False   '不顯示警告信息
    Set fso = CreateObject("Scripting.FileSystemObject")
    If Not fso.FolderExists(save_path) Then fso.CreateFolder (save_path)  '創(chuàng)建文件夾
    For Each f In fso.GetFolder(xlsx_path).Files  '遍歷文件夾里文件
        If fso.GetExtensionName(f.Name) = "xlsx" Then
            save_file = save_path & "\" & fso.GetBaseName(f.Name) & ".xls"  '保存文件全名(文件路徑、文件名、擴(kuò)展名)
            Set wb = Workbooks.Open(f)
            wb.SaveAs filename:=save_file, FileFormat:=xlExcel8
            wb.Close (False)
        End If
    Next
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Function

Private Sub xls和xlsx轉(zhuǎn)換測試()
    Dim file_path$, save_path$
    file_path = "E:\測試\xls"
    save_path = "E:\測試\xlsx"
    a = xls2xlsx(file_path, save_path)  '2種調(diào)用方式
'    Call xlsx2xls(save_path, file_path)
End Sub

以上就是使用Python實(shí)現(xiàn)XLS和XLSX之間的相互轉(zhuǎn)換的詳細(xì)內(nèi)容,更多關(guān)于Python XLS和XLSX相互轉(zhuǎn)換的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論