ব্যাচ XLS কে XLSX এ রূপান্তর করে


12

আমাকে একটি পুরানো অ্যাপ্লিকেশন নিয়ে কাজ করতে হবে যা কেবল এক্সএলএস ফাইল রফতানি করতে পারে এবং আমি। নেট মধ্যে প্রোগ্রামগুলি লিখি যা কেবল এক্সএলএসএক্স ফাইলগুলি পড়তে সক্ষম।

এক্সএলএস থেকে এক্সএলএসএক্সে ব্যাচ রূপান্তর করার সহজতম উপায় কী?

উত্তর:


6

অফিস মাইগ্রেশন পরিকল্পনা পরিচালককে দেখুন Check

টুলকিটে অফিস ফাইল রূপান্তরকারী (ওএফসি) রয়েছে, যা বাইনারি থেকে ওপেনএক্সএমএল ফর্ম্যাটগুলিতে বাল্ক ডকুমেন্ট রূপান্তরকে সক্ষম করে। ( প্রযুক্তি )

টেকনেট উপর ওভারভিউ

লিংক ডাউনলোড কর

মনে রাখবেন যে আপনাকে Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint File Formatsওএফসি-র কাজ করার দরকারও পড়বে।
দুটি সরঞ্জামই সত্যই আর সমর্থিত বলে মনে হচ্ছে না।


1
এটি উপস্থিত রয়েছে যে আমাকে সহ বেশ কয়েকজন লোক এই সরঞ্জামটির সাথে সমস্যা সমাধানের কারণে তাদের এক্সএলএস ফাইলগুলিতে রূপান্তর করতে ব্যর্থ হয়েছে।
জন

3

আমি একটি ফোল্ডারের মধ্যে ফাইলগুলি xls থেকে xlsx এ রূপান্তর করতে ম্যাক্রো ব্যবহার করার পরামর্শ দেব। এই কোডটি ধরে নিয়েছে যে ফাইলগুলি সমস্তই একটি ফোল্ডারের মধ্যে অবস্থিত এবং সমস্ত এক্সএলএস ফাইলকে রূপান্তর করা দরকার তবে আপনি পৃথক ফাইল নির্বাচন করতে চাইলে এই কোডটি আপডেট করা যেতে পারে।

এই কোডটি একটি এক্সেল 2007 বা তারপরের ওয়ার্কবুক থেকে চালানো দরকার।

Option Explicit

' Convert all xls files in selected folder to xlsx

Public Sub convertXLStoXLSX()

    Dim FSO As Scripting.FileSystemObject
    Dim strConversionPath As String
    Dim fFile As File
    Dim fFolder As Folder
    Dim wkbConvert As Workbook

    ' Open dialog and select folder
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .Show
        On Error Resume Next ' Prevent debug mode if user cancels selection
        strConversionPath = .SelectedItems(1)
        On Error GoTo 0      ' Re-enable default error handling
    End With

    Set FSO = New Scripting.FileSystemObject

    ' Check if the folder exists
    If FSO.FolderExists(strConversionPath) Then
        Set fFolder = FSO.GetFolder(strConversionPath)

        ' Disable confirmation dialogs (to prevent "unsaved changes" dialog popping up)
        ' and screen updates (to speed up conversion)
        Application.DisplayAlerts = False
        Application.ScreenUpdating = False

        ' Loop through files, find the .xls files
        For Each fFile In fFolder.Files
            If LCase$(Right(fFile.Name, 4)) = ".xls" Then
                ' Open temporary workbook
                Set wkbConvert = Workbooks.Open(fFile.Path)
                ' Save as OpenXML workbook - if your .xls files contain macros
                ' then change to FileFormat:=xlOpenXMLWorkbookMacroEnabled
                wkbConvert.SaveAs FSO.BuildPath(fFile.ParentFolder, _
                                    Left(fFile.Name, Len(fFile.Name) - 4)) & ".xlsx", _
                                  FileFormat:=xlOpenXMLWorkbook
                wkbConvert.Close SaveChanges:=False
                ' Delete original file
                fFile.Delete Force:=True
            End If
        Next fFile

        ' Re-enable confirmation dialogs and screen updates
        Application.DisplayAlerts = True
        Application.ScreenUpdating = True

    End If

End Sub

দ্রষ্টব্য: আপনি যে ফাইলগুলিতে রূপান্তর করছেন সেগুলিতে যদি ম্যাক্রোগুলি থাকে তবে আপনাকে FileFormat:=xlOpenXMLWorkbookপড়ার জন্য আপডেট করতে হবে FileFormat:=xlOpenXMLWorkbookMacroEnabled। অথবা রূপান্তরিত ফাইলগুলিতে আপনার যদি ম্যাক্রো কোডের প্রয়োজন না হয় তবে আপনি এটিকে একা রেখে যেতে পারেন এবং এটি ম্যাক্রোগুলি সরিয়ে ফেলবে যখন এটি এক্সএলএক্সএক্স ফর্ম্যাটে রূপান্তরিত করে।


আমি কি। CSV কে .XLSX এ রূপান্তর করতে চাই?
বোরিস_ইও

1

সুতরাং আমি নিরব ফ্যাশনে .xls ফাইলগুলিকে .xlsx এ রূপান্তর করতে একটি সাধারণ ভিবিএস স্ক্রিপ্ট লিখেছিলাম।

./convert-xls-xlsx.vbs। .xls ফাইলযুক্ত ফোল্ডারের পাথ}

রূপান্তর- xls-xlsx.vbs:

    আরগস সেট করুন = ডাব্লুএসক্রিপ্ট.আর্গুমেন্টস
    স্ট্রপথ = আরোগুলি (0)
    আরআরপথ = ক্রিয়েটওবজেক্ট ("স্ক্রিপ্টিং.ফাইলসিসটেমবজেক্ট")। গেটআবসুলিউটপথনাম (স্ট্রাপথ)
    আপত্তি সেট করুন = ক্রিয়েটওবজেক্ট ("এক্সেল। আবেদন")
    objExcel.Visible = মিথ্যা
    objExcel.DisplayAlerts = মিথ্যা
    অজেক্টফসো = ক্রিয়েটওবজেক্ট সেট করুন ("স্ক্রিপ্টিং.ফাইলসিসটেমবজেক্ট")
    অজেক্টফোল্ডার = অজেক্টফসো.গেটফোল্ডার (স্ট্রাপথ) সেট করুন
    প্রতিটি ObFFile ইনজেজফোল্ডার.ফাইলেস এর জন্য
        fileName = objFile.Path
        যদি (objFso.GetExistanceName (objFile.Path) = "xls") তারপরে
            অজটওয়ার্কবুক = অজেক্সেল.ওয়ার্কবুকস.ওপেন (ফাইলনাম) সেট করুন
            saveFileName = প্রতিস্থাপন (ফাইলের নাম, "। xls", "। xlsx")
            ফিজিলেম সংরক্ষণ করুন, 51
            objWorkbook.Close ()
            objExcel.Application.DisplayAlerts = সত্য
        যদি শেষ
    পরবর্তী
    MsgBox "সমাপ্ত রূপান্তর"

দ্রষ্টব্য: ফোল্ডারের পথে ফাঁকা স্থান অনুসন্ধান করুন, যদি আপনার পাথের মাঝে একটি স্থান থাকে তবে পথটি উদ্ধৃতিতে রাখুন।


আমি ডিসপ্লেএল্টগুলি = মিথ্যাতে পরিবর্তন করেছি কারণ আমি কোনও ম্যাক্রোগুলি সম্পর্কে জানতে চাই না, কেবল তাদের মুছুন, এজন্যই আমি এই জিনিসগুলিকে প্রথম স্থানে রূপান্তর করছি। তারপরে চূড়ান্ত এমএসজিবক্স সরানো হয়েছে, কারণ আমি চাইনি এটি আমাকে বগ করছে।
বিউলফুলনড 42

@ বিউওলফনোড 42 শীতল, তবে আমি মনে করি যে আমার ওয়ার্কবুকগুলি দুর্বল হওয়ার কারণে আমি ডিসপ্লেআল্টগুলি রেখেছি। তবে তারপরে আবার ঠিক ঠিক মনে নেই।
রিভোসফুটউ

0
সাব সেভএলএএক্সএক্সএলএক্সএক্স ()
স্ট্রিং হিসাবে ম্লান strFilename
স্ট্রিং হিসাবে DDMDDNName
স্ট্রিং হিসাবে দিম স্ট্র্যাপথ
ওয়ার্কবুক হিসাবে ধীর wbk
ফাইলডায়ালগ হিসাবে ফিম ডায়ালগ করুন
পূর্ণসংখ্যা হিসাবে ধীরে ধীরে ইন্টপোস
স্ট্রিং হিসাবে ম্লান স্ট্রিমপ্যাসওয়ার্ড
স্ট্রিং হিসাবে ম্লান স্ট্রাইট্রাইটপ্যাসওয়ার্ড
স্ট্রিং হিসাবে দিম ভারা
স্ট্রিং হিসাবে ম্লান ভার্বি
নতুন সংগ্রহ হিসাবে ধীর কলফিলস
ধীর vFile হিসাবে বৈকল্পিক
FDialog = অ্যাপ্লিকেশন.ফায়াল ডায়ালগ (msoFileDialogFolderPicker) সেট করুন
FDialog সহ
    .Title = "ফোল্ডার নির্বাচন করুন এবং ঠিক আছে ক্লিক করুন"
    .আলোমল্টিসিলেট = সত্য
    .InitialView = msoFileDialogViewList
    যদি .শো -1 তারপর
        MsgBox "ব্যবহারকারীর দ্বারা বাতিল", "ফোল্ডার সামগ্রী তালিকাবদ্ধ করুন"
        প্রস্থান করুন
    যদি শেষ
    strPath = fDialog.SelectedItems.Item (1)
    ডানদিকে থাকলে (strPath, 1) "\" তারপরে strPath = strPath + "\"
শেষ করা
যদি বাম (strPath, 1) = ক্র (34) তবে
    আরআরপথ = মিড (স্ট্রিপথ, ২, লেন (স্ট্রপথ) - ২)
যদি শেষ
সেট আপত্তি = ক্রিয়েটবজেক্ট ("স্ক্রিপ্টিং। ফাইল ফাইল সিস্টেম")
রিকার্সিভিডির কলফিলস, আরআরপথ, "* .xls", সত্য
কলিফাইলে প্রতিটি ভিফিলের জন্য
        ডিবাগ.প্রিন্ট vFile
    strFilename = vFile
    varA = ডান (strFilename, 3)
    যদি (varA = "xls" বা varA = "XLSX") থাকে তবে Then
     Wbk = ওয়ার্কবুকস সেট করুন Oআপনি (ফাইলের নাম: = strFilename)
       যদি wbk.HasVB প্রকল্প তারপর
              wbk.SaveAs ফাইলের নাম: = strFilename & "m", ফাইলফর্ম্যাট: = xlOpenXMLWorkbookMacroEnabled
            আর
               wbk.SaveAs ফাইলের নাম: = strFilename এবং "x", ফাইলফর্ম্যাট: = xlOpenXMLWorkbook
            যদি শেষ
            wbk.Close SaveChanges: = মিথ্যা
           ob.DeleteFile (strFilename)
    যদি শেষ
পরবর্তী vFile

শেষ সাব
পাবলিক ফাংশন রিকার্সিভডির (সংগ্রহ হিসাবে কলফাইলস, _
                             স্ট্রিং হিসাবে স্ট্রফোল্ডার, _
                             স্ট্রিং হিসাবে #FileSpec, _
                             বুলিয়ান হিসাবে বিঙ্কস্লুউসফোল্ডারগুলি)

    স্ট্রিং হিসাবে ডিমে ট্র্যাম্প
    নতুন সংগ্রহ হিসাবে ধীর কলফোল্ডার
    ভিমিয়েন্ট হিসাবে ডিম্প ডিফোল্ডারনাম

    'কলফাইলে স্ট্রফোল্ডার ম্যাচিং স্ট্রফিলস্পেপে ফাইল যুক্ত করুন
    স্ট্রফোল্ডার = ট্রেলিংস্ল্যাশ (স্ট্রফোল্ডার)
    strTemp = Dir (strFolder & strFileSpec)
    StrTemp vbNullString করার সময় করুন
        colFiles. স্ট্রফোল্ডার এবং strTemp যুক্ত করুন
        strTemp = Dir
    লুপ

    তারপর বিঙ্কনডসুবফোল্ডার
        স্ট্রফোল্ডারের সাব-ডিরেক্টরিগুলির তালিকা সহ কলফোল্ডারগুলি পূরণ করুন
        strTemp = দির (স্ট্রফোল্ডার, ভিবি ডিরেক্টরি)
        StrTemp vbNullString করার সময় করুন
            যদি (strTemp "।") এবং (strTemp "..") তারপরে
                (GetAttr (strFolder & #Temp) এবং vbDirectory) যদি 0 থাকে তবে
                    colFolders.TrTemp যোগ করুন
                যদি শেষ
            যদি শেষ
            strTemp = Dir
        লুপ

        কলফোল্ডারে প্রতিটি সাবফোল্ডারের জন্য 'রিকার্সিভিডির' কল করুন
        কলফোল্ডারে প্রতিটি vFolderName এর জন্য
            রিকার্সিভিডিরকে কল করুন (কলিফাইলস, স্ট্রফোল্ডার এবং ভিফোল্ডারনাম, স্ট্রফিলস্পেক, ট্রু)
        পরবর্তী vFolderName
    যদি শেষ

ফাংশন শেষ
স্ট্রিং হিসাবে পাবলিক ফাংশন ট্রেলিংস্ল্যাশ (স্ট্রিং হিসাবে স্ট্রফোর্ডার)
    যদি লেন (স্ট্রফোল্ডার)> 0 তবে
        ডান হলে (strFolder, 1) = "\" তারপরে
            ট্রেলিংস্ল্যাশ = স্ট্রফোল্ডার
        আর
            ট্রেলিংস্ল্যাশ = স্ট্রফোল্ডার এবং "\"
        যদি শেষ
    যদি শেষ
ফাংশন শেষ


8
কেবল একগুচ্ছ কোড পেস্ট করার পরিবর্তে, আপনি এটি কীভাবে ব্যবহার করতে পারেন, এটি কীভাবে ব্যবহার করতে পারেন এবং সীমাবদ্ধতাগুলি (যদি থাকে) কীভাবে কিছুটা ব্যাখ্যা করতে পারেন? ভবিষ্যতের দর্শনার্থীদের জন্য এটি আরও সহায়ক হবে।
slhck

0

আপনার যদি এমসফিস ইনস্টল করা থাকে তবে দ্রুত সমাধানের জন্য এই সরঞ্জামটি ডাউনলোডের জন্য মূল্যবান হতে পারে।

http://www.softinterface.com/Convert-XLS/Features/Convert-XLS-To-XLSX.htm

আপনি যখন এক্সএলএস ফাইল রূপান্তরিত দেখতে একটি ফোল্ডার নির্বাচন করেন, তখন নিশ্চিত হন যে রূপান্তর সরঞ্জামটিতে এমএস অফিস ব্যবহার করে, তাদের নিজস্ব রূপান্তরকারী নয় এমনটি আপনি টিক চিহ্ন দিয়েছিলেন।

আপনি যদি তাদের নিজস্ব রূপান্তরকারী ব্যবহার করেন তবে আপনি কক্ষগুলিতে রঙ হারাবেন এবং একক শীট বেরিয়ে আসবে বলে মনে হয়। আপনি যদি MsOffice ব্যবহার করেন তবে রূপান্তরকারীটি দুর্দান্তভাবে কাজ করছে বলে মনে হচ্ছে। দ্রুত সমাধানের জন্য ভাল সরঞ্জাম।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.