xlsx是什么格式的文件怎么转换

由于使用的PHP库解析xls格式文件有问题,而将xls格式转换为xlsx格式就可以解析,考虑到xls文件有很多,需要使用批量转换文件的方法,本文介绍两种方法。 方法1:Python pandas库 使用Python p...

由于使用的PHP库解析xls格式文件有问题,而将xls格式转换为xlsx格式就可以解析,考虑到xls文件有很多,需要使用批量转换文件的方法,本文介绍两种方法。

方法1:Python pandas库

使用Python pandas库的to_excel方法来另存为xlsx格式。

考虑到Excel文件一般有多个工作表,需要都读出来然后保存。下面直接给出代码:

import globimport osimport timeimport pandas as pdclass excelConvert(): def __init__(self): self.path = os.getcwd() # 当前工作路径 xlsxdirname = "xlsx" xlsxpath = os.path.join(self.path, xlsxdirname) if not os.path.exists(xlsxpath): print(f"创建文件夹: {xlsxdirname}") os.makedirs(xlsxpath) self.xlsxpath = xlsxpath def batch_convert(self): xls_files = glob.glob(self.path "/*.xls") if len(xls_files) != 0: print('当前目录下的xls格式文件:') for file in xls_files: print(os.path.basename(file)) fname, _ = os.path.splitext(file) basename = os.path.basename(fname) xlsxpathname = os.path.join(self.xlsxpath, basename) self.saveasxlsx(file, xlsxpathname) else: print('该目录下无xls格式文件,即将退出...') time.sleep(2) os._exit(0) def saveasxlsx(self, xlspath, xlsxpath): writer = pd.ExcelWriter(xlsxpath '.xlsx') datas = pd.read_excel(xlspath,sheet_name=None) for sheetname, values in datas.items(): data = pd.DataFrame(values) data.to_excel(writer, sheet_name=sheetname) writer.save() writer.close()if __name__=='__main__': excel = excelConvert() excel.batch_convert()

使用上述代码无法保留原Excel文件中的单元格样式,接下来介绍使用VBA代码进行转换。

方法2:VBA批量转换

使用VBA代码进行批量转换,代码来源:https://www.extendoffice.com/documents/excel/1349-excel-batch-convert-xls-to-xlsx.html

打开Excel 2007或者以上版本,ALT F11 打开 Microsoft Visual Basic for Applications窗口,点击 插入-> 模块,会打开代码窗口。

或者右键点击工作表,选择【查看代码】:

b6362d2fed85071dc2c037d73d0f4fbd.jpg

输入以下代码:

Sub ConvertToXlsx()'Updateby ExtendofficeDim strPath As StringDim strFile As StringDim xWbk As WorkbookDim xSFD, xRFD As FileDialogDim xSPath As StringDim xRPath As StringSet xSFD = Application.FileDialog(msoFileDialogFolderPicker)With xSFD.Title = "Please select the folder contains the xls files:".InitialFileName = "C:"End WithIf xSFD.Show <> -1 Then Exit SubxSPath = xSFD.SelectedItems.Item(1)Set xRFD = Application.FileDialog(msoFileDialogFolderPicker)With xRFD.Title = "Please select a folder for outputting the new files:".InitialFileName = "C:"End WithIf xRFD.Show <> -1 Then Exit SubxRPath = xRFD.SelectedItems.Item(1) & ""strPath = xSPath & ""strFile = Dir(strPath & "*.xls")Application.ScreenUpdating = FalseApplication.DisplayAlerts = FalseDo While strFile <> ""If Right(strFile, 3) = "xls" ThenSet xWbk = Workbooks.Open(Filename:=strPath & strFile)xWbk.SaveAs Filename:=xRPath & strFile & "x", _FileFormat:=xlOpenXMLWorkbookxWbk.Close SaveChanges:=FalseEnd IfstrFile = DirLoopApplication.DisplayAlerts = TrueApplication.ScreenUpdating = TrueEnd Sub

点击F5运行,选择xls文件目录和保存xlsx文件的目录,然后会进行批量转换。

–THE END–

逃离是事实,但我没有背叛。——刘慈欣《三体2:黑暗森林》

  • 发表于 2022-06-19 23:14:23
  • 阅读 ( 426 )
  • 分类:科技

0 条评论

请先 登录 后评论
浏览:32
浏览:32

614 篇文章

你可能感兴趣的文章

相关问题