कमांड लाइन पर XLS को CSV में बदलें


104

मैं विंडोज़ कमांड लाइन पर एक एक्सएलएस फ़ाइल को सीएसवी फ़ाइल में कैसे बदल सकता हूं।

मशीन में Microsoft Office 2000 स्थापित है। यदि Microsoft Microsoft Office का उपयोग करना संभव नहीं है तो मैं OpenOffice स्थापित करने के लिए तैयार हूं।

जवाबों:


125

नोटपैड खोलें, 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
यदि कोई सोच रहा था, तो oBook.SaveAs फ़ंक्शन में पैरामीटर 6 CSV प्रारूप के लिए स्थिर है।
स्कॉट

बस ठीक काम करता है, और न केवल xls फ़ाइलों के लिए, बल्कि xlsx भी। एंड्रयू द्वारा कहा गया है, फ़ाइल पथ या तो निरपेक्ष होना चाहिए, या उपयोगकर्ता "डेटा" निर्देशिका में (मुझे यकीन नहीं है कि अंग्रेजी में सटीक नाम क्या है)। मुझे अभी भी यह पता नहीं चला है कि इसे कैसे हल किया जाए, मैं ज्यादा vbscript नहीं कर रहा हूँ! :)
12:09 बजे प्लांग

3
मैंने थोड़ा संशोधित संस्करण के नीचे पोस्ट किया है जो फ़ाइल पथ को बेहतर तरीके से संभालता है। धन्यवाद ScottF!
Plang

7
कोड केवल सक्रिय वर्कशीट को रूपांतरित करता है। किसी अन्य वर्कशीट का चयन करने के लिए, वर्कशीट oExcel.Workbooks.Openके वांछित इंडेक्स (1 से शुरू होने वाले) के साथ लाइन के बाद निम्न लाइन जोड़ें : oBook.Worksheets(1).Activate
humbads

1
यह ध्यान दिया जाना चाहिए कि यह कार्यात्मक न केवल xls या xlsx पर, बल्कि किसी भी फ़ाइल पर, जिसे Excel स्वयं खोल सकता है।
user1318135

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

मैंने स्क्रिप्ट ExcelToCsv का नाम बदल दिया है, क्योंकि यह स्क्रिप्ट केवल xls तक सीमित नहीं है। xlsx ठीक काम करता है, जैसा कि हम उम्मीद कर सकते हैं।

Office 2010 के साथ परीक्षण किया गया।


मैं इसे (कुछ अनुकूलन के साथ) XML से XLS में बदलने के लिए उपयोग कर रहा हूं। हालाँकि, मैं इस रूपांतरण के दौरान एक्सेल से संगतता चेतावनी संदेश बॉक्स नहीं रखना चाहता। क्या आप जानते हैं कि मैं इस चेतावनी को कैसे निष्क्रिय कर सकता हूँ?
jpnavarini

क्या इस फ़ाइल को यूनिकोड चार सेट के रूप में सहेजने का कोई तरीका है?
आरजेवी

2
मैंने इस उत्तर को सीधे निर्देश के साथ Gist में @ user565869 के उत्तर के साथ रखा। देखें: एक्सेल फाइल को CSV में बदलने के लिए स्क्रिप्ट
10GritSandpaper

1
यह अच्छा है @ 10GritSandpaper
amrrs

क्या उपयोग करने का कोई तरीका है; के बजाय एक सीमांकक के रूप में? मैंने बदलने की कोशिश की oBook.SaveAs dest_file, csv_format, स्थानीय: = सही है, लेकिन मुझे एक त्रुटि मिलती है कि एक बयान के बाद उम्मीद की जाती है: जब मैंने जोड़ा, "स्थानीय: = सच" कोई और त्रुटि नहीं है, लेकिन अभी भी इसके बजाय, का उपयोग किया जाता है; परिसीमन के रूप में। शायद आप में से कोई मेरी मदद कर सकता है।
चूसने वाला जूल

27

स्कॉट्स के ग्रूवी वीबी स्क्रिप्ट पर एक छोटा सा विस्तार: यह बैच फ़ाइल एक निर्देशिका में .xlsx फ़ाइलों के माध्यम से लूप करेगी और उन्हें * .csv फ़ाइलों में डंप करेगी।

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

नोट: आप एक्सटेंशन .xlsx से .xls और स्क्रिप्ट का नाम बदल सकते हैं ExcelToCSV से XlsToCsv


1
@ रीऑक्स: आपकी टिप्पणी-ए-एडिट के बारे में: यदि यह फाइलों को एक डबल एक्सटेंशन देता है, तो एक दूसरी साधारण बैच फाइल उनका नाम बदल सकती है। यह एक नए सवाल में बह रहा है, हालांकि; कृपया इसे आजमाएँ और, यदि आप इसे काम करने में असमर्थ हैं, तो SU पर एक नया प्रश्न यहाँ पोस्ट करें।

इस स्वचालन ने मेरी जान बचाई। :) थैंक यू
पुष्कर यादव

1
मैंने इस उत्तर को सरल निर्देश के साथ Gist में @plang के उत्तर के साथ रखा। देखें: एक्सेल फाइल को CSV में बदलने के लिए स्क्रिप्ट
10GritSandpaper

@ 10GritSandpaper Excel 2007 का उपयोग करना। आपके लिंक की स्क्रिप्ट मेरे लिए कारगर नहीं थी।
बोरिस_वाई

आप csv फ़ाइलों में ".xls" फ़ाइल एक्सटेंशन को निकालने के लिए "%% i.csv" को "%% ~ ni.csv" में बदल सकते हैं।
शोहुआ ली

18

कैसे के बारे में PowerShell के साथ?

कोड इस तरह दिखना चाहिए, हालांकि परीक्षण नहीं किया गया है

$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()

यहाँ एक पोस्ट बताया गया है कि इसका उपयोग कैसे करना है

मैं Microsoft Excel को स्वचालित करने के लिए Windows PowerShell का उपयोग कैसे कर सकता हूं?


यह एक अच्छे दृष्टिकोण की तरह दिखता है। दुर्भाग्य से, मैं इसे प्राप्त नहीं कर सका। मैं PowerShell से परिचित नहीं हूं, इसलिए जब मैं एक त्रुटि में भाग गया तो मुझे नहीं पता था कि मुझे क्या करना है। : मैं नहीं एक PowerShell-specifc समाधान मिल सकता है support.microsoft.com/kb/320369
योएल

यहाँ शक्तियां और एक्सेल के कुछ टिप्स दिए गए हैं, blogs.technet.com/heyscriptingguy/archive/2006/09/08/…
आप

मैंने इसका एक टेस्ट रन किया और समस्याओं में भी भाग गया। एक चीज जो मैं भागा था, वह $Excel.Workbooks.Openविधि के साथ कठिनाई थी । यह निर्दिष्ट फ़ाइल नहीं ढूँढ सका। मैंने Get-Itemफ़ाइल पर इसका उपयोग करके और इसे एक ForEach-Objectलूप पर पाइप करके काम किया (कुछ मैं अपने अंतिम कार्यान्वयन में वैसे भी करूंगा) जो दो पंक्तियों के साथ शुरू हो रहा है $Workbook
Iszi

उस समस्या को ठीक कर दिया, लेकिन तब मैं "YourDOC.csv" परिणामी नहीं खोज सका - यह "YOUDOC.XLS" के समान फ़ोल्डर में नहीं था। मैं पुराने और भरोसेमंद CMD पर वापस गया और किया 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
क्या UTF-8 एनकोडिंग करने का कोई तरीका है?
स्टुबोबैड

लक्ष्य सीएसवी फ़ाइल में हेडर लिखना कैसे छोड़ें। मैं उपरोक्त स्क्रिप्ट को बिल्कुल नहीं समझता, लेकिन मैं इसे अपने स्वचालन में उपयोग कर रहा हूं। धन्यवाद।
थरुणराजा

@TharunRaja स्क्रिप्ट एक्सेल में फाइल को खोलती है, फिर CSV को "सेव एज़" करती है, जैसे कि आपने इसे हाथ से किया है, सिवाय इसके कि इसे बैकग्राउंड में छिपाया जाए। क्योंकि स्क्रिप्ट स्वयं रूपांतरण नहीं कर रही है, और आप इसे स्वचालित कर रहे हैं, मेरा सुझाव यह होगा कि आप इस आउटपुट को csv फाइलों पर एक दूसरी स्क्रिप्ट को कॉल करें, मुझे संदेश दें कि क्या आपको एक बनाने में मदद की जरूरत है जो कि स्ट्रिप ए की पहली पंक्ति से बाहर है फ़ाइल आप इसे पास करें।
क्रिस रूड

खुद को मुझे पॉवरशेल में एक अधिक शक्तिशाली संस्करण की आवश्यकता थी जो सही तरीके से तारीखों को संसाधित कर सकता है, हेडर को संभाल सकता है जो पहली पंक्ति में नहीं हैं, और कुछ अन्य चीजें (यह वास्तव में एक्सेल पर भरोसा करने के बजाय व्यक्तिगत कोशिकाओं को पार्स करता है)। अगर लोग इसके लिए एक आवश्यकता व्यक्त करते हैं तो मैं इसे पोस्ट करूंगा लेकिन चूंकि यह अनिवार्य रूप से उत्तर दिया गया है और हम उन भाषाओं को बदल रहे हैं जिन्हें मैं डुप्लिकेट पोस्ट नहीं करना चाहता।
क्रिस रुड

5

अपना खुद का क्यों नहीं लिखते?

मैं आपकी प्रोफ़ाइल से देखता हूं कि आपके पास कम से कम कुछ सी # /। NET का अनुभव है। मैं एक विंडोज कंसोल एप्लिकेशन बनाऊंगा और अपनी एक्सेल फाइल (एस) में पढ़ने के लिए एक मुफ्त एक्सेल रीडर का उपयोग करूंगा। मैंने बिना किसी समस्या के कोडप्लेक्स से उपलब्ध एक्सेल डेटा रीडर का उपयोग किया है (एक अच्छी बात: इस रीडर को एक्सेल को स्थापित करने की आवश्यकता नहीं है)। आप अपने कंसोल एप्लिकेशन को कमांड लाइन से कॉल कर सकते हैं।

यदि आप अपने आप को यहाँ अटका हुआ पद पाते हैं और मुझे यकीन है कि आपको मदद मिलेगी।


दरअसल, मैंने कभी कोई C # कभी नहीं लिखा। लेकिन मुझे लगता है कि मैं एक्सेल डेटा रीडर के साथ इसे दरार दूंगा।
जोएल

3
थोड़ा ओवरकिल आपको नहीं लगता। एनआईएच की खुशबू आ रही है।
मिस्टर ब्वॉय

1
मुझे नहीं लगता कि एक्सेल डेटा रीडर NIH है। सबसे पहले किसी और ने इसे लिखा था। दूसरे, यह पूर्ण विकसित एक्सेल की तुलना में समस्या को बेहतर तरीके से हल करता है।
जस्टिन डियरिंग

4

आप इसे Alacon - Alasql डेटाबेस के लिए कमांड-लाइन उपयोगिता के साथ कर सकते हैं । यह Node.js के साथ काम करता है, इसलिए आपको Node.js और उसके बाद Alasql पैकेज स्थापित करने की आवश्यकता है ।

एक्सेल फ़ाइल को सीवीएस (ओटी टीएसवी) में परिवर्तित करने के लिए आप दर्ज कर सकते हैं:

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

डिफ़ॉल्ट रूप से Alasql "Sheet1" से डेटा को परिवर्तित करता है, लेकिन आप इसे मापदंडों से बदल सकते हैं:

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

Alacon अन्य प्रकार के रूपांतरणों (CSV, TSV, TXT, XLSX, XLS) और SQL भाषा निर्माणों का समर्थन करता है ( उदाहरणों के लिए उपयोगकर्ता मैनुअल देखें )।


1
वाह! Alasql वास्तव में शक्तिशाली है।
लुकाज़ विकटोर

यदि आप AlaSQL को विश्व स्तर पर स्थापित करते हैं (npm install alasql -g) तो आप बस> alasql "SELECT ... INTO CSV (...) FROM XLS (...)"
agershun

2

Windows में बनाया गया एक Excel OLEDB डेटा प्रदाता है; आप ADO.NET के माध्यम से एक्सेल शीट को 'क्वेरी' करने के लिए इसका उपयोग कर सकते हैं और सीएसवी फ़ाइल में परिणाम लिख सकते हैं। थोड़ी मात्रा में कोडिंग की आवश्यकता होती है, लेकिन आपको मशीन पर कुछ भी स्थापित करने की आवश्यकता नहीं होनी चाहिए।


अधूरा जवाब। जब विंडोज में कार्यक्षमता हो, तो कोई भी एक तृतीय-पक्ष .DLL फ़ाइल क्यों स्थापित करेगा?
ज्योफ ग्रिसवल्ड

2

जॉन ऑफ ऑल ट्रेड्स ने जो प्रदान किया है, उसके आधार पर, निम्नलिखित (~ n) ने pesky डबल एक्सटेंशन समस्या को हटा दिया: FOR /f "delims=" %%i IN ('DIR *.xlsx /b') DO ExcelToCSV.vbs "%%i" "%%~ni.csv"


1

मैंने स्कॉटफ़ वीबी समाधान की कोशिश की और इसे काम करने के लिए मिला। हालाँकि मैं मल्टी-टैब (वर्कबुक) एक्सेल फाइल को सिंगल .csv फाइल में बदलना चाहता था।

यह काम नहीं किया, केवल एक टैब (एक जिसे हाइलाइट के माध्यम से खोलने पर हाइलाइट किया गया है) कॉपी किया गया।

क्या कोई ऐसी स्क्रिप्ट से वाकिफ है जो मल्टी-टैब एक्सेल फाइल को सिंगल .csv फाइल में बदल सके?


0

स्कॉट एफ का जवाब सबसे अच्छा है जो मैंने इंटरनेट पर पाया है। मैंने अपनी आवश्यकताओं को पूरा करने के लिए उनके कोड में जोड़ दिया। मैंने कहा:

त्रुटि फिर से शुरू करने पर अगला <- शीर्ष पर मेरे बैच प्रसंस्करण में एक लापता xls फ़ाइलों के लिए खाता है। oBook.Application.Columns ("A: J")। NumberFormat = "@ <> - इससे पहले कि यह सुनिश्चित करने के लिए कि मेरा डेटा सहेजा जाता है, यह सुनिश्चित करने के लिए कि मेरे डेटा में नंबर स्ट्रिंग को हटाने से कॉमा को हटाने के लिए टेक्स्ट के रूप में स्वरूपित किया गया है। यानी (1,200 से 1200)। कॉलम रेंज को आपके नीड्स (ए: जे) से मिलने के लिए समायोजित किया जाना चाहिए।

मैंने इसे गैर-संवादात्मक बनाने के लिए इको "किया" को भी हटा दिया।

मैंने तब स्क्रिप्ट को एक कार्य के माध्यम से प्रति घंटे के आधार पर स्वचालित डेटा संसाधित करने के लिए एक cmd बैच फ़ाइल में जोड़ा।


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" नाम के अपने डेस्कटॉप पर एक TXT फ़ाइल बनाएं और कोड पेस्ट करें:

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

एक XLS फ़ाइल को इसमें खींचें (जैसे "test.xls")। यह "test.xls.csv" नाम से एक परिवर्तित CSV फ़ाइल बनाएगा। फिर, इसका नाम बदलकर "test.csv" करें। किया हुआ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.