Slik automatiserer konvertere Excel XLS-filer til Excel xml-format?

stemmer
5

Jeg har ca 200 Excel-filer som er i standard Excel 2003-format.

Jeg trenger dem alle til å bli lagret som Excel xml - i utgangspunktet det samme som å åpne hver fil og velge Lagre som ... og deretter velger Save as type: XML-regneark

Vil du vite noen enkel måte å automatisere den oppgaven?

Publisert på 06/10/2008 klokken 12:16
kilden bruker
På andre språk...                            


6 svar

stemmer
3

Du kan tilpasse koden jeg postet her:

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

Den viser hvordan du lagre som PDF (Word vises i bloggen, men hvis du laster ned løsningen, har det kode for Excel og PPT).

Du må finne funksjonen for lagring som det nye formatet i stedet for å eksportere (sannsynligvis den enkleste måten er å spille inn en makro av deg selv å gjøre det i Excel, og deretter se på koden).

Svarte 06/10/2008 kl. 12:27
kilden bruker

stemmer
0

Den enkleste måten er å ta makro for en fil og deretter manuelt redigere makroer for å gjøre slike handlinger for filer i mappen ved hjelp av løkke. I makro kan du bruke standart VB funksjoner for å få alle filene i katalogen og filtrere dem. Du kan se http://www.xtremevbtalk.com/archive/index.php/t-247211.html for ytterligere informasjon.

Svarte 06/10/2008 kl. 12:44
kilden bruker

stemmer
3

Åpne dem alle opp, og deretter trykker du ALT + F11 for å komme til makro redaktør og skriv noe sånt som:

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

Og trykk F5 for å kjøre den. Kan trenge litt tweaking som jeg ikke har testet det.

Svarte 06/10/2008 kl. 12:45
kilden bruker

stemmer
1

Høres ut som en jobb for min favoritt-mest-underrated språket hele tiden: VBScript !!

Sette dette i en tekstfil, og gjøre utvidelsen "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

Jeg har ikke testet dette, men det skal fungere

Svarte 06/10/2008 kl. 19:27
kilden bruker

stemmer
8

Her er en rutine som vil konvertere alle filer i en enkelt katalog som har en XLS forlengelse.

Det tar rett frem tilnærming. Enhver VBA-kode i en arbeidsbok er strippet ut, arbeidsboken lagres ikke med en .xlsm forlengelse. Enhver uforlikeligheten advarsel ikke dislayed, i stedet endringene blir automatisk akseptert.

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
Svarte 06/10/2008 kl. 21:14
kilden bruker

stemmer
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
Svarte 17/12/2014 kl. 10:28
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more