কমান্ড লাইনে এক্সএলএসকে সিএসভিতে রূপান্তর করুন


103

আমি কীভাবে একটি এক্সএলএস ফাইলকে উইন্ডোজ কমান্ড লাইনের একটি সিএসভি ফাইলে রূপান্তর করতে পারি।

মেশিনটিতে মাইক্রোসফ্ট অফিস 2000 ইনস্টল করা আছে। মাইক্রোসফ্ট অফিস ব্যবহার করা যদি সম্ভব না হয় তবে আমি ওপেন অফিস ইনস্টল করার জন্য উন্মুক্ত।

উত্তর:


124

নোটপ্যাড খুলুন, XlsToCsv.vbs নামে একটি ফাইল তৈরি করুন এবং এতে আটকান:

if WScript.Arguments.Count < 2 Then
    WScript.Echo "Error! Please specify the source path and the destination. Usage: XlsToCsv SourcePath.xls Destination.csv"
    Wscript.Quit
End If
Dim oExcel
Set oExcel = CreateObject("Excel.Application")
Dim oBook
Set oBook = oExcel.Workbooks.Open(Wscript.Arguments.Item(0))
oBook.SaveAs WScript.Arguments.Item(1), 6
oBook.Close False
oExcel.Quit
WScript.Echo "Done"

তারপরে একটি কমান্ড লাইন থেকে, আপনি .vbs ফাইলটি সংরক্ষণ করে ফোল্ডারে যান এবং চালনা করুন:

XlsToCsv.vbs [sourcexlsFile].xls [destinationcsvfile].csv

এটি আপনার চালু থাকা মেশিনে এক্সেল ইনস্টল করা প্রয়োজন।


20
যদি কেউ ভাবতে থাকে তবে ওবুক.সেভএ ফাংশনে 6 টি প্যারামিটারটি সিএসভি ফর্ম্যাটের জন্য ধ্রুবক।
স্কটএফ

শুধু সূক্ষ্মভাবে কাজ করে, এবং কেবল এক্সএলএস ফাইলের জন্য নয়, এক্সএলএক্সএক্স। অ্যান্ড্রু বলেছিলেন, ফাইল পাথ অবশ্যই হয় নিখুঁত হতে হবে, বা ব্যবহারকারীর "ডেটা" ডিরেক্টরিতে (ইংরেজিতে সঠিক নামটি কী তা আমি নিশ্চিত নই)। আমি কীভাবে এটি সমাধান করব তা এখনও বুঝতে পারি নি, আমি খুব বেশি ভিএসক্রিপ্ট করছি না! :)
14:59 এ জর্জরিত

3
আমি কিছুটা পরিবর্তিত সংস্করণের নীচে পোস্ট করেছি যা ফাইল পাথগুলি আরও ভাল পরিচালনা করে। ধন্যবাদ স্কটএফ!
14:30 এ জর্জরিত করুন

7
কোডটি কেবল সক্রিয় কার্যপত্রকে রূপান্তর করে। অন্য একটি কার্যপত্রক নির্বাচন করতে, ওয়ার্কশিটের oExcel.Workbooks.Openপছন্দসই সূচী দিয়ে রেখার পরে নিম্নলিখিত লাইনটি যুক্ত করুন (1 এ শুরু হবে): oBook.Worksheets(1).Activate
হাম্বাদগুলি

1
এটি লক্ষ করা উচিত যে এই ক্রিয়াকলাপটি কেবল এক্সএলএস বা এক্সএলএক্সএক্স নয়, যে কোনও ফাইলেই এক্সেল নিজেই খুলতে পারে।
ব্যবহারকারী 1318135

81

স্কটএফ উত্তরের একটি সামান্য পরিবর্তিত সংস্করণ, যার জন্য নিখুঁত ফাইল পাথের প্রয়োজন নেই:

if WScript.Arguments.Count < 2 Then
    WScript.Echo "Please specify the source and the destination files. Usage: ExcelToCsv <xls/xlsx source file> <csv destination file>"
    Wscript.Quit
End If

csv_format = 6

Set objFSO = CreateObject("Scripting.FileSystemObject")

src_file = objFSO.GetAbsolutePathName(Wscript.Arguments.Item(0))
dest_file = objFSO.GetAbsolutePathName(WScript.Arguments.Item(1))

Dim oExcel
Set oExcel = CreateObject("Excel.Application")

Dim oBook
Set oBook = oExcel.Workbooks.Open(src_file)

oBook.SaveAs dest_file, csv_format

oBook.Close False
oExcel.Quit

আমি স্ক্রিপ্টটির নামকরণ করেছি এক্সেলটোকসভি, যেহেতু এই স্ক্রিপ্টটি কেবল এক্সএলএস-এর মধ্যে সীমাবদ্ধ নয়। xlsx ঠিক কাজ করে, যেমনটি আমরা আশা করতে পারি।

অফিস 2010 এর সাথে পরীক্ষিত।


এক্সএমএল থেকে এক্সএলএসে রূপান্তর করতে আমি এটি (কয়েকটি অভিযোজন সহ) ব্যবহার করছি। তবে এই রূপান্তরকালে আমি এক্সেলের কাছ থেকে সামঞ্জস্যতা সতর্কতা বার্তা বাক্সটি পেতে চাই না। আপনি কি জানেন কীভাবে আমি এই সতর্কতাটি অক্ষম করতে পারি?
jpnavarini

এই ফাইলটি ইউনিকোড চর সেট হিসাবে সংরক্ষণ করার কোনও উপায় আছে কি?
rjv

2
আমি এই উত্তরটি @ সরল নির্দেশাবলীর সাথে @ user565869 এর উত্তরের সাথে সংক্ষেপে রেখেছি। দেখুন: এক্সেল
ফাইলটিকে সিএসভিতে

1
এর চমৎকার একসঙ্গে @ 10GritSandpaper করা যে
amrrs

ব্যবহার করার কোনও উপায় আছে; পরিবর্তে একটি সীমানা হিসাবে,? আমি ওবুক পরিবর্তন করার চেষ্টা করেছি ave সেভএস ডেস্ট_ফায়াল, সিএসভি_ফর্ম্যাট, লোকাল: = সত্য তবে আমি একটি ত্রুটি পেয়েছি যা একটি বিবৃতি প্রত্যাশার পরে প্রত্যাশিত: যখন আমি যুক্ত করেছি, "স্থানীয়: = সত্য" এর পরে আর কোনও ত্রুটি নেই তবে এর পরিবর্তে ব্যবহৃত হয়; সীমানা হিসাবে আপনারা কেউ আমাকে সাহায্য করতে পারেন।
suckerp

27

স্কটএফের গ্রোভি ভিবি স্ক্রিপ্টের একটি ছোট সম্প্রসারণ: এই ব্যাচ ফাইলটি একটি ডিরেক্টরিতে .xlsx ফাইলের মধ্য দিয়ে লুপ করবে এবং তাদের * .csv ফাইলগুলিতে ফেলে দেবে:

FOR /f "delims=" %%i IN ('DIR *.xlsx /b') DO ExcelToCSV.vbs "%%i" "%%i.csv"

দ্রষ্টব্য: আপনি এক্সটেনশন .xlsx .xls এবং স্ক্রিপ্ট এক্সেলটোসএসভি এর নাম XlsToCsv এ পরিবর্তন করতে পারেন


1
@ রিওক্স: আপনার মন্তব্য-হিসাবে-সম্পাদনা সম্পর্কিত: এটি যদি ফাইলগুলিকে দ্বিগুণ প্রসার দেয়, তবে দ্বিতীয় সাধারণ ব্যাচের ফাইলগুলি তাদের পুনরায় নামকরণ করতে পারে। যদিও এটি একটি নতুন প্রশ্নে প্রবাহিত হচ্ছে; দয়া করে চেষ্টা করে দেখুন এবং আপনি যদি এটি কাজ করতে অক্ষম হন তবে এসই-তে এখানে একটি নতুন প্রশ্ন পোস্ট করুন।

এই অটোমেশন আমার জীবন বাঁচায়। :) আপনাকে ধন্যবাদ
পুষ্কর যাদব

1
আমি সরল নির্দেশাবলীর সাথে এই উত্তরটি @ প্ল্যাংয়ের উত্তরের সাথে গিস্টে একসাথে রেখেছি। দেখুন: এক্সেল
ফাইলটিকে সিএসভিতে

@ 10GritSandpaper এক্সেল 2007 ব্যবহার করে your আপনার লিঙ্কে লিপিটি আমার পক্ষে কাজ করে না।
বরিস_ইও

আপনি CSV ফাইলগুলিতে ".xls" ফাইলের এক্সটেনশানটি সরাতে "%% i.csv" ને "%% i ni.csv" এ পরিবর্তন করতে পারেন।
শাওহুয়া লি

18

পাওয়ারশেলের সাথে কীভাবে?

কোডটি দেখতে এমন হওয়া উচিত, যদিও এটি পরীক্ষা করা হয় না

$xlCSV = 6
$Excel = New-Object -Com Excel.Application 
$Excel.visible = $False 
$Excel.displayalerts=$False 
$WorkBook = $Excel.Workbooks.Open("YOUDOC.XLS") 
$Workbook.SaveAs("YOURDOC.csv",$xlCSV) 
$Excel.quit()

এটি কীভাবে ব্যবহার করবেন সে সম্পর্কে এখানে একটি পোস্ট রয়েছে

মাইক্রোসফ্ট এক্সেলটি স্বয়ংক্রিয় করতে আমি কীভাবে উইন্ডোজ পাওয়ারশেল ব্যবহার করতে পারি?


এটি দেখতে একটি ভাল পদ্ধতির মত দেখাচ্ছে। দুর্ভাগ্যক্রমে, আমি এটি যেতে পারি না। আমি পাওয়ারশেলের সাথে পরিচিত নই, তাই যখন আমি কোনও ত্রুটির মধ্যে পড়ি তখন আমি কী করব তা জানতাম না। আমি পাওয়ারশেল-স্পেসিফিক সমাধানটি খুঁজে পেলাম না: support.microsoft.com/kb/320369
জোয়েল

পাওয়ারশেল এবং এক্সেলের জন্য এখানে কয়েকটি টিপস, ব্লগস.টেকনেট
আপনি

আমি এটির একটি পরীক্ষা চালিয়েছি এবং সমস্যাগুলির মধ্যেও ছড়িয়ে পড়েছি। আমি যে জিনিসটির মধ্যে দৌড়েছি তা ছিল $Excel.Workbooks.Openপদ্ধতিটি নিয়ে অসুবিধা । এটি নির্দিষ্ট ফাইলটি খুঁজে পায়নি। Get-Itemফাইলটি ব্যবহার করে এবং ForEach-Objectদুটি লাইন দিয়ে শুরু করে দুটি লুপের জন্য ( এটি কোনওভাবেই আমার চূড়ান্ত বাস্তবায়নে শেষ করব) এর মাধ্যমে আমি এটিকে ঘিরে কাজ করেছি $Workbook
ইসজি

এটি সেই সমস্যাটি স্থির করে দিয়েছিল তবে তারপরে আমি "YOURDOC.csv" ফলাফলটি খুঁজে পেল না - এটি "YOUDOC.XLS" এর মতো ফোল্ডারে ছিল না। আমি পুরানো ও বিশ্বস্ত সিএমডিতে ফিরে গিয়েছিলাম CD /D C:\ && DIR YOURDOC.csv /s। ফাইলটি ডিফল্টরূপে আমার দস্তাবেজে সংরক্ষণ করা হয়েছিল। সুতরাং, আপনি যে ফোল্ডারে কাজ করছেন সেই ফাইলটি (আমার দস্তাবেজগুলি বাদে অন্য যদি) ফাইলটি সংরক্ষণ করতে চান তবে আপনাকে স্ক্রিপ্টে আরও রাখতে হবে।
ইসজি

8

আমার বিভিন্ন ওয়ার্কশিট থেকে বেশ কয়েকটি সিভি বের করার দরকার ছিল, তাই এখানে প্লাং কোডের একটি পরিবর্তিত সংস্করণ রয়েছে যা আপনাকে কার্যপত্রকের নামটি নির্দিষ্ট করতে দেয়।

if WScript.Arguments.Count < 3 Then
    WScript.Echo "Please specify the sheet, the source, the destination files. Usage: ExcelToCsv <sheetName> <xls/xlsx source file> <csv destination file>"
    Wscript.Quit
End If

csv_format = 6

Set objFSO = CreateObject("Scripting.FileSystemObject")

src_file = objFSO.GetAbsolutePathName(Wscript.Arguments.Item(1))
dest_file = objFSO.GetAbsolutePathName(WScript.Arguments.Item(2))

Dim oExcel
Set oExcel = CreateObject("Excel.Application")

Dim oBook
Set oBook = oExcel.Workbooks.Open(src_file)

oBook.Sheets(WScript.Arguments.Item(0)).Select
oBook.SaveAs dest_file, csv_format

oBook.Close False
oExcel.Quit

8

এখানে এমন একটি সংস্করণ যা একাধিক ফাইলগুলিকে উইন্ডোজ থেকে টেনে আনবে এবং হ্যান্ডেল করবে। উপরোক্ত কাজের উপর ভিত্তি করে

Christian Lemer
plang
ScottF

নোটপ্যাড খুলুন, XlsToCsv.vbs নামে একটি ফাইল তৈরি করুন এবং এতে আটকান:

'* Usage: Drop .xl* files on me to export each sheet as CSV

'* Global Settings and Variables
Dim gSkip
Set args = Wscript.Arguments

For Each sFilename In args
    iErr = ExportExcelFileToCSV(sFilename)
    ' 0 for normal success
    ' 404 for file not found
    ' 10 for file skipped (or user abort if script returns 10)
Next

WScript.Quit(0)

Function ExportExcelFileToCSV(sFilename)
    '* Settings
    Dim oExcel, oFSO, oExcelFile
    Set oExcel = CreateObject("Excel.Application")
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    iCSV_Format = 6

    '* Set Up
    sExtension = oFSO.GetExtensionName(sFilename)
    if sExtension = "" then
        ExportExcelFileToCSV = 404
        Exit Function
    end if
    sTest = Mid(sExtension,1,2) '* first 2 letters of the extension, vb's missing a Like operator
    if not (sTest =  "xl") then
        if (PromptForSkip(sFilename,oExcel)) then
            ExportExcelFileToCSV = 10
            Exit Function
        end if
    End If
    sAbsoluteSource = oFSO.GetAbsolutePathName(sFilename)
    sAbsoluteDestination = Replace(sAbsoluteSource,sExtension,"{sheet}.csv")

    '* Do Work
    Set oExcelFile = oExcel.Workbooks.Open(sAbsoluteSource)
    For Each oSheet in oExcelFile.Sheets
        sThisDestination = Replace(sAbsoluteDestination,"{sheet}",oSheet.Name)
        oExcelFile.Sheets(oSheet.Name).Select
        oExcelFile.SaveAs sThisDestination, iCSV_Format
    Next

    '* Take Down
    oExcelFile.Close False
    oExcel.Quit

    ExportExcelFileToCSV = 0
    Exit Function
End Function

Function PromptForSkip(sFilename,oExcel)
    if not (VarType(gSkip) = vbEmpty) then
        PromptForSkip = gSkip
        Exit Function
    end if

    Dim oFSO
    Set oFSO = CreateObject("Scripting.FileSystemObject")

    sPrompt = vbCRLF & _
        "A filename was received that doesn't appear to be an Excel Document." & vbCRLF & _
        "Do you want to skip this and all other unrecognized files?  (Will only prompt this once)" & vbCRLF & _
        "" & vbCRLF & _
        "Yes    - Will skip all further files that don't have a .xl* extension" & vbCRLF & _
        "No     - Will pass the file to excel regardless of extension" & vbCRLF & _
        "Cancel - Abort any further conversions and exit this script" & vbCRLF & _
        "" & vbCRLF & _
        "The unrecognized file was:" & vbCRLF & _
        sFilename & vbCRLF & _
        "" & vbCRLF & _
        "The path returned by the system was:" & vbCRLF & _
        oFSO.GetAbsolutePathName(sFilename) & vbCRLF

    sTitle = "Unrecognized File Type Encountered"

    sResponse =  MsgBox (sPrompt,vbYesNoCancel,sTitle)
    Select Case sResponse
    Case vbYes
        gSkip = True
    Case vbNo
        gSkip = False
    Case vbCancel
        oExcel.Quit
        WScript.Quit(10)    '*  10 Is the error code I use to indicate there was a user abort (1 because wasn't successful, + 0 because the user chose to exit)
    End Select

    PromptForSkip = gSkip
    Exit Function
End Function

1
ইউটিএফ -8 এনকোডিং করার কোনও উপায় আছে কি?
স্টুবিজ

লক্ষ্য সিএসভি ফাইলে লেখার শিরোনাম কীভাবে এড়ানো যায়। আমি উপরের স্ক্রিপ্টটি পুরোপুরি বুঝতে পারি না, তবে আমি এটি আমার অটোমেশনে ব্যবহার করছি। ধন্যবাদ.
থারুনরাজ রাজা

@ থারুনরাজা স্ক্রিপ্টটি এক্সেলের মধ্যে ফাইলটি খোলে, তারপরে সিএসভিতে একটি "সেভ" করে দেয় ঠিক তেমন, যদি আপনি ব্যাকগ্রাউন্ডে আড়াল না করে হাত দিয়ে কাজটি করেন। যেহেতু স্ক্রিপ্ট নিজেই রূপান্তর করছে না, এবং আপনি এটি স্বয়ংক্রিয় করছেন, আমার পরামর্শ হ'ল সিএসভি ফাইলগুলিতে এই আউটপুটগুলিতে একটি দ্বিতীয় স্ক্রিপ্ট কল করা উচিত, যদি আপনাকে একটি প্রথম লাইনের স্ট্রিপগুলি তৈরি করতে সাহায্যের প্রয়োজন হয় তবে আমাকে বার্তা দিন আপনি এটি পাস ফাইল।
ক্রিস রুড

নিজেই আমার পাওয়ারশেলের আরও শক্তিশালী সংস্করণ দরকার যা সঠিকভাবে তারিখগুলি প্রক্রিয়া করতে পারে, প্রথম লাইনে নেই এমন শিরোনামগুলি পরিচালনা করতে পারে এবং আরও কয়েকটি জিনিস (এটি প্রকৃতপক্ষে এক্সেলকে বিশ্বাস করার পরিবর্তে পৃথক কোষকে পার্স করে)। লোকেরা যদি এটির জন্য প্রয়োজনীয়তা প্রকাশ করে তবে আমি এটি পোস্ট করব তবে যেহেতু এটির মূলত উত্তর দেওয়া হয়েছে এবং আমরা ভাষাগুলি পরিবর্তন করব আমি নকলগুলি পোস্ট করতে চাই না।
ক্রিস রুড

5

নিজের লেখেন না কেন?

আমি আপনার প্রোফাইল থেকে দেখছি আপনার কমপক্ষে কিছু সি # /। নেট অভিজ্ঞতা আছে। আমি একটি উইন্ডোজ কনসোল অ্যাপ্লিকেশন তৈরি করেছি এবং আপনার এক্সেল ফাইল (গুলি) পড়ার জন্য একটি বিনামূল্যে এক্সেল রিডার ব্যবহার করব। আমি কোডপ্লেক্স থেকে কোনও সমস্যা ছাড়াই উপলব্ধ এক্সেল ডেটা রিডার ব্যবহার করেছি (একটি দুর্দান্ত জিনিস: এই পাঠকটি এক্সেল ইনস্টল করার প্রয়োজন নেই)। আপনি কমান্ড লাইন থেকে আপনার কনসোল অ্যাপ্লিকেশন কল করতে পারেন।

আপনি যদি এখানে নিজেকে আটকে থাকা পোস্ট দেখতে পান এবং আমি নিশ্চিত যে আপনি সহায়তা পাবেন।


আসলে, আমি কখনও কোনও সি # লিখিনি। তবে আমি মনে করি এটি এক্সেল ডেটা রিডার সহ একটি ক্র্যাক দেব।
জোয়েল

3
কিছুটা ওভারকিল আপনি ভাবেন না। NIH এর দুর্গন্ধ
মিঃ বয়

1
আমি মনে করি না এক্সেল ডেটা রিডারটি এনআইএইচ। সবার আগে এটি অন্য কেউ লিখেছেন। দ্বিতীয়ত, এটি ফুল ব্লোড এক্সেলের চেয়ে আরও ভাল সমস্যার সমাধান করেছে।
জাস্টিন ডিয়ারিং

4

আপনি এটি আলাকান - আলাসকল ডাটাবেসের জন্য কমান্ড-লাইন ইউটিলিটি দিয়ে করতে পারেন । এটি নোড.জেএস এর সাথে কাজ করে, সুতরাং আপনাকে নোড.জেএস এবং তারপরে আলাসকল প্যাকেজ ইনস্টল করতে হবে ।

এক্সেল ফাইলটি সিভিএসে রূপান্তর করতে (ওটি টিএসভি) আপনি প্রবেশ করতে পারেন:

> node alacon "SELECT * INTO CSV('mydata.csv', {headers:true}) FROM XLS('mydata.xls', {headers:true})"

ডিফল্টরূপে আলাস্কল "শীট 1" থেকে ডেটা রূপান্তর করে তবে আপনি এটি পরামিতিগুলির সাহায্যে পরিবর্তন করতে পারেন:

{headers:false, sheetid: 'Sheet2', range: 'A1:C100'}

অ্যালাকন অন্যান্য ধরণের রূপান্তরকে সমর্থন করে (সিএসভি, টিএসভি, টিএক্সটি, এক্সএলএসএক্স, এক্সএলএস) এবং এসকিউএল ভাষা নির্মাণ ( উদাহরণগুলির জন্য ব্যবহারকারী ম্যানুয়াল দেখুন )।


1
কি দারুন! আলাসকল আসলেই শক্তিশালী।
লুকাস ভিক্টর

আপনি যদি বিশ্বব্যাপী আলাএসকিউএল ইনস্টল করেন (এনপিএম ইনস্টল আলাসকল-জি) তবে আপনি কেবল> আলাস্কল "নির্বাচন করুন ... এক্সএলএস থেকে সিএসভি (...)"
বয়সশুন

2

উইন্ডোজটিতে একটি এক্সেল ওএলইডিবি ডেটা সরবরাহকারী রয়েছে; আপনি এটি ADO.NET এর মাধ্যমে এক্সেল শিটটি 'ক্যোয়ারী' করতে এবং সিএসভি ফাইলে ফলাফল লিখতে পারেন। এখানে প্রচুর পরিমাণে কোডিং প্রয়োজন, তবে আপনাকে মেশিনে কোনও কিছু ইনস্টল করার দরকার নেই।


আন্ডাররেটেড উত্তর। যখন উইন্ডোজ কার্যকারিতাটি অন্তর্নিহিত থাকবে তখন কেন কেউ তৃতীয় পক্ষের .DLL ফাইল ইনস্টল করবেন?
জিওফ গ্রিসওয়াল্ড

2

সমস্ত ট্রেডের জোন যা সরবরাহ করেছে তার উপর ভিত্তি করে, নিম্নলিখিত () n) সমস্যাযুক্ত ডাবল এক্সটেনশন ইস্যুটিকে সরিয়ে দিয়েছে: FOR /f "delims=" %%i IN ('DIR *.xlsx /b') DO ExcelToCSV.vbs "%%i" "%%~ni.csv"


1

আমি স্কটএফ ভিবি সমাধান চেষ্টা করেছিলাম এবং এটি কার্যকর হয়েছি। তবে আমি একটি মাল্টি-ট্যাব (ওয়ার্কবুক) এক্সেল ফাইলটিকে একক .csv ফাইলে রূপান্তর করতে চেয়েছিলাম।

এটি কার্যকর হয়নি, কেবলমাত্র একটি ট্যাব (যখন এটি আমি এক্সেলের মাধ্যমে খুলি তখন হাইলাইট করা হয়) অনুলিপি করা হয়।

কোনও স্ক্রিপ্ট সম্পর্কে কি সচেতন যে কোনও মাল্টি-ট্যাব এক্সেল ফাইলটিকে একটি একক .csv ফাইলে রূপান্তর করতে পারে?


0

স্কট এফ এর উত্তরটি আমি ইন্টারনেটে সবচেয়ে ভাল খুঁজে পেয়েছি। আমার প্রয়োজন মেটাতে আমি তার কোডটিতে যুক্ত করেছিলাম। আমি যোগ করলাম:

ত্রুটিতে পুনরায় সূচনা করুন পরবর্তী <- উপরে আমার ব্যাচের প্রসেসিংয়ে হারিয়ে যাওয়া এক্সএলএস ফাইলগুলির অ্যাকাউন্ট করতে। ওবুক.এপ্লিকেশন.কলামগুলি ("এ: জে")। সংখ্যাফর্ম্যাট = "@" <- সেভএ লাইনটি শুরুর শুরুর মুছে ফেলা এবং আমার ডেটাতে নম্বর স্ট্রিংগুলিতে কমাগুলি অপসারণ থেকে এক্সেল রাখতে টেক্সট হিসাবে ফর্ম্যাট করা আছে তা নিশ্চিত করার জন্য অর্থাত (1,200 থেকে 1200)। আপনার নীডগুলি পূরণ করার জন্য কলামের ব্যাপ্তি সামঞ্জস্য করা উচিত (এ: জে)।

আমি ইকোটিকে "ইন্টারেটিভ" না করার জন্য "সম্পন্ন "ও সরিয়েছি।

আমি তখন কোনও টাস্কের মাধ্যমে প্রতি ঘন্টা ভিত্তিতে স্বয়ংক্রিয় ডেটা প্রক্রিয়াকরণের জন্য স্ক্রিপ্টটি একটি সিএমডি ব্যাচ ফাইলে যুক্ত করেছি।


2
আমি মনে করি আপনার মন্তব্যগুলির সাথে কোডের চূড়ান্ত সংস্করণ পোস্ট করা বিবেচনা করা উচিত।
ডিফল্ট লোকেল

0

এই উত্তরগুলোর সব আমাকে অনুসরণ স্ক্রিপ্ট যা স্বয়ংক্রিয়ভাবে XLS * CSV তে ফাইল রূপান্তর হবে গঠন করা সাহায্য করেছে এবং তদ্বিপরীত স্ক্রিপ্ট (অথবা কম্যান্ড লাইনের মাধ্যমে) এ এক বা একাধিক ফাইল ড্রপ দ্বারা। জানকী বিন্যাসের জন্য ক্ষমা চাই।

' /programming/1858195/convert-xls-to-csv-on-command-line
' https://gist.github.com/tonyerskine/77250575b166bec997f33a679a0dfbe4

' https://stackoverflow.com/a/36804963/1037948
'* Global Settings and Variables
Set args = Wscript.Arguments

For Each sFilename In args
    iErr = ConvertExcelFormat(sFilename)
    ' 0 for normal success
    ' 404 for file not found
    ' 10 for file skipped (or user abort if script returns 10)
Next

WScript.Quit(0)

Function ConvertExcelFormat(srcFile)

    if IsEmpty(srcFile) OR srcFile = "" Then
        WScript.Echo "Error! Please specify at least one source path. Usage: " & WScript.ScriptName & " SourcePath.xls*|csv"
        ConvertExcelFormat = -1
        Exit Function
        'Wscript.Quit
    End If

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    srcExt = objFSO.GetExtensionName(srcFile)

    ' the 6 is the constant for 'CSV' format, 51 is for 'xlsx'
    ' https://msdn.microsoft.com/en-us/vba/excel-vba/articles/xlfileformat-enumeration-excel
    ' https://www.rondebruin.nl/mac/mac020.htm
    Dim outputFormat, srcDest

    If LCase(Mid(srcExt, 1, 2)) = "xl" Then
        outputFormat = 6
        srcDest = "csv"
    Else
        outputFormat = 51
        srcDest = "xlsx"
    End If

    'srcFile = objFSO.GetAbsolutePathName(Wscript.Arguments.Item(0))
    srcFile = objFSO.GetAbsolutePathName(srcFile)
    destFile = Replace(srcFile, srcExt, srcDest)

    Dim oExcel
    Set oExcel = CreateObject("Excel.Application")
    Dim oBook
    Set oBook = oExcel.Workbooks.Open(srcFile)
    ' preserve formatting? https://stackoverflow.com/a/8658845/1037948
    'oBook.Application.Columns("A:J").NumberFormat = "@"
    oBook.SaveAs destFile, outputFormat
    oBook.Close False
    oExcel.Quit
    WScript.Echo "Conversion complete of '" & srcFile & "' to '" & objFSO.GetFileName(destFile) & "'"

End Function

0

:: ইউটিএফ -8 এর জন্য মাইক্রোসফ্ট অফিস 2016 এবং তারও বেশি কাজের জন্য!

এই কোড ব্যবহার করে দেখুন:

if WScript.Arguments.Count < 2 Then
    WScript.Echo "Please specify the source and the destination files. Usage: ExcelToCsv <xls/xlsx source file> <csv destination file>"
    Wscript.Quit
End If

csv_format = 62

Set objFSO = CreateObject("Scripting.FileSystemObject")

src_file = objFSO.GetAbsolutePathName(Wscript.Arguments.Item(0))
dest_file = objFSO.GetAbsolutePathName(WScript.Arguments.Item(1))


Dim oExcel
Set oExcel = CreateObject("Excel.Application")

Dim oBook
Set oBook = oExcel.Workbooks.Open(src_file)

oBook.SaveAs dest_file, csv_format

oBook.Close False
oExcel.Quit

0

আপনার ডেস্কটপে "xls2csv.vbs" নামে একটি টিএক্সটি ফাইল তৈরি করুন এবং কোডটি পেস্ট করুন:

Dim vExcel
Dim vCSV
Set vExcel = CreateObject("Excel.Application")
Set vCSV = vExcel.Workbooks.Open(Wscript.Arguments.Item(0))
vCSV.SaveAs WScript.Arguments.Item(0) & ".csv", 6
vCSV.Close False
vExcel.Quit

এটিতে একটি এক্সএলএস ফাইল টেনে আনুন ("টেস্ট.এক্সলস" এর মতো)। এটি "test.xls.csv" নামে একটি রূপান্তরিত সিএসভি ফাইল তৈরি করবে। তারপরে, এটির নামকরণ "test.csv" করুন। সম্পন্ন.

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