2008-10-06 16 views
5

मेरे पास लगभग 200 एक्सेल फ़ाइलें हैं जो मानक Excel 2003 प्रारूप में हैं।Excel xls फ़ाइलों को एक्सेल xml प्रारूप में कनवर्ट करने के लिए स्वचालित कैसे करें?

मैं उन सभी एक्सेल एक्सएमएल के रूप में सहेजने की आवश्यकता - प्रत्येक फ़ाइल को खोलने और चुनने सहेजें ... और फिर प्रकार के रूप में सहेजें चुनने के रूप में मूलतः एक ही:एक्सएमएल स्प्रेडशीट

आप चाहेंगे उस कार्य को स्वचालित करने का कोई आसान तरीका पता है?

उत्तर

8

यहाँ एक दिनचर्या है कि में सभी फाइलों में परिवर्तित कर देगी एक निर्देशिका जिसमें एक .xls एक्सटेंशन है।

यह सीधे आगे दृष्टिकोण लेता है। कार्यपुस्तिका में कोई भी वीबीए कोड छीन लिया जाता है, कार्यपुस्तिका को .xlsm एक्सटेंशन से सहेजा नहीं जाता है। किसी भी असंगतता चेतावनी को हटाया नहीं जाता है, इसके बजाय परिवर्तन स्वचालित रूप से स्वीकार किए जाते हैं।

Sub Convert_xls_Files() 

Dim strFile As String 
Dim strPath As String 

    With Application 
     .EnableEvents = False 
     .DisplayAlerts = False 
     .ScreenUpdating = False 
    End With 
'Turn off events, alerts & screen updating 

     strPath = "C:\temp\excel\" 
     strFile = Dir(strPath & "*.xls") 
'Change the path as required 

    Do While strFile <> "" 
     Workbooks.Open (strPath & strFile) 
     strFile = Mid(strFile, 1, Len(strFile) - 4) & ".xlsx" 
     ActiveWorkbook.SaveAs Filename:=strPath & strFile, FileFormat:=xlOpenXMLWorkbook 
     ActiveWorkbook.Close True 
     strFile = Dir 
    Loop 
'Opens the Workbook, set the file name, save in new format and close workbook 

    With Application 
     .EnableEvents = True 
     .DisplayAlerts = True 
     .ScreenUpdating = True 
    End With 
'Turn on events, alerts & screen updating 

End Sub 
+1

धन्यवाद रॉबर्ट, यह बहुत अच्छा काम करता था। एकमात्र चीज जो मैंने बदल दी वह फ़ाइलफॉर्मैट था: = XlFileFormat.xlXMLSpreadsheet (मैं एक्सेल 2003 का उपयोग कर रहा हूं) – kristof

+0

क्या उपरोक्त कोड php में लिखा जा सकता है? – chupinette

3

आप कोड मैं यहां पोस्ट अनुकूलन कर सकते हैं:

http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/01/loading-office-documents-in-net.aspx

यह कैसे पीडीएफ के रूप में बचाने के लिए (वर्ड ब्लॉग में दिखाया गया है, लेकिन आप समाधान डाउनलोड करते हैं, यह एक्सेल और के लिए कोड है से पता चलता पीपीटी)।

आपको निर्यात के बजाय नए प्रारूप के रूप में सहेजने के लिए फ़ंक्शन ढूंढने की आवश्यकता है (शायद सबसे आसान तरीका यह है कि Excel में इसे करने का मैक्रो रिकॉर्ड करना और फिर कोड को देखना)।

+0

दोनों जवाब के लिए और सवाल में फ़ाइल एक्सटेंशन नाम को सही करने के लिए आप लो धन्यवाद। जब मुझे अधिक व्यापक समाधान की आवश्यकता होती है तो मैं आपको सुझाव देख सकता हूं। इस पल के लिए मैं वीबीए – kristof

0

सबसे आसान तरीका एक फ़ाइल के लिए मैक्रो रिकॉर्ड करना है और फिर लूप का उपयोग करके फ़ोल्डर में फ़ाइलों के लिए मैन्युअल रूप से मैक्रोज़ संपादित करना है। मैक्रो में आप निर्देशिका में सभी फाइलें प्राप्त करने और उन्हें फ़िल्टर करने के लिए स्टैंडएट वीबी फ़ंक्शंस का उपयोग कर सकते हैं। आप अतिरिक्त जानकारी के लिए http://www.xtremevbtalk.com/archive/index.php/t-247211.html देख सकते हैं।

3

उन सब को खोलें, और उसके बाद के लिए ALT + F11 दबाएँ मैक्रो संपादक के लिए मिलता है और की तरह कुछ दर्ज करने के लिए:

Sub SaveAllAsXml() 
    Dim wbk As Workbook 
    For Each wbk In Application.Workbooks 
     wbk.SaveAs FileFormat:=XlFileFormat.xlXMLSpreadsheet 
    Next 
End Sub 

और फिर इसे चलाने के लिए F5 दबाएँ। मुझे कुछ tweaking की आवश्यकता हो सकती है क्योंकि मैंने इसका परीक्षण नहीं किया है।

+0

के साथ ठीक हूं धन्यवाद, यह उपयोगी था – kristof

1

मेरी पसंदीदा-सर्वाधिक-अंडररेड भाषा के लिए हर समय की तरह लगता है: वीबीस्क्रिप्ट !!

एक पाठ फ़ाइल में इस रखो, और एक्सटेंशन ".vbs" बनाना:

set xlapp = CreateObject("Excel.Application") 
set fso = CreateObject("scripting.filesystemobject") 
set myfolder = fso.GetFolder("YOURFOLDERPATHHERE") 
set myfiles = myfolder.Files 
for each f in myfiles 
    set mybook = xlapp.Workbooks.Open(f.Path) 
    mybook.SaveAs f.Name & ".xml", 47 
    mybook.Close 
next 

मैं इस परीक्षण नहीं किया है, लेकिन यह काम करना चाहिए

0
Const xlXLSX = 51 

REM 51 = xlOpenXMLWorkbook (without macro's in 2007-2013, xlsx) 
REM 52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007-2013, xlsm) 
REM 50 = xlExcel12 (Excel Binary Workbook in 2007-2013 with or without macro's, xlsb) 
REM 56 = xlExcel8 (97-2003 format in Excel 2007-2013, xls) 

dim args 
dim file 
dim sFile 
set args=wscript.arguments 

dim wshell 
Set wshell = CreateObject("WScript.Shell") 

Set objExcel = CreateObject("Excel.Application") 

Set objWorkbook = objExcel.Workbooks.Open(wshell.CurrentDirectory&"\"&args(0)) 

objExcel.DisplayAlerts = FALSE 

objExcel.Visible = FALSE 

objWorkbook.SaveAs wshell.CurrentDirectory&"\"&args(1), xlXLSX 

objExcel.Quit 

Wscript.Quit 
संबंधित मुद्दे