Êîìïüþòåðíûé ôîðóì OSzone.net  

Êîìïüþòåðíûé ôîðóì OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook è ò.ä.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   Excel ñáîð äàííûõ ñ íåñêîëüêèõ ôàéëîâ (http://forum.oszone.net/showthread.php?t=282209)

Streamnewal 14-05-2014 06:39 2351177

Excel ñáîð äàííûõ ñ íåñêîëüêèõ ôàéëîâ
 
Âëîæåíèé: 3
Åñòü ñòîëáåö äàííûõ îäíîòèïíûé â íåñêîëüêèõ ôàéëàõ, ïðè÷åì ñ ðàñøèðåíèåì txt. Èõ îêîëî 100 øòóê.
Ñòîëáöû ðàñïîëîæåíû â îäíîì è òîì æå ìåñòå. Íóæíî ðàçìåñòèòü èõ ïîñëåäîâàòåëüíî äðóã çà äðóãîì â îäíîì ôàéëå, êàê â ïðèìåðå.
Òåêñòîâûå ôàéëû íîðìàëüíî îòêðûâàþòñÿ. ñ ôîðìàòèðîâàíèåì, òîëüêî ïðè èñïîëüçîâàíèè ìàñòåðà òåêñòîâ.

Iska 14-05-2014 23:20 2351574

Íà WSH, ïðîáóéòå:
÷èòàòü äàëüøå »
Êîä:

Option Explicit

Dim strSourceFolder

Dim objFile
Dim arrContent

Dim objExcel
Dim objWorkbook
Dim objWorksheet
Dim objRange
Dim i

If WScript.Arguments.Count = 1 Then
        strSourceFolder = WScript.Arguments.Item(0)
       
        With WScript.CreateObject("Scripting.FileSystemObject")
                If .FolderExists(strSourceFolder) Then
                        Set objExcel = Nothing
                       
                        For Each objFile In .GetFolder(strSourceFolder).Files
                                If LCase(.GetExtensionName(objFile.Name)) = "txt" Then
                                        If objExcel Is Nothing Then
                                                Set objExcel    = WScript.CreateObject("Excel.Application")
                                                Set objWorkbook  = objExcel.Workbooks.Add()
                                                Set objWorksheet = objWorkbook.Worksheets.Item(1)
                                                Set objRange    = objWorksheet.Range("C3")
                                        End If
                                       
                                       
                                        With .OpenTextFile(objFile.Path)
                                                arrContent = Split(.ReadAll(), vbCrLf)
                                                .Close
                                        End With
                                       
                                        objRange.Value = .GetBaseName(objFile.Name)
                                        objRange.Font.Bold = True
                                       
                                        For i= LBound(arrContent) To UBound(arrContent) - 1
                                                objRange.Offset(i + 1, 0).Value = Split(arrContent(i), vbTab)(1)
                                        Next
                                       
                                        Set objRange = objRange.Offset(0, 1)
                                End If
                        Next
                       
                        If Not objExcel Is Nothing Then
                                Set objRange    = Nothing
                                Set objWorksheet = Nothing
                               
                                objWorkbook.SaveAs .BuildPath(strSourceFolder, "Result.xls")
                                Set objWorkbook  = Nothing
                               
                                objExcel.Quit
                                Set objExcel    = Nothing
                        End If
                Else
                        WScript.Echo "Can't find source folder [" & strSourceFolder & "]."
                        WScript.Quit 2
                End If
        End With
Else
        WScript.Echo "Usage: cscript.exe //nologo " & WScript.ScriptName & " <Source folder>"
        WScript.Quit 1
End If

WScript.Quit 0


Ìîæíî ïðîñòî ïåðåòàùèòü ïàïêó ñ èñêîìûìè ôàéëàìè íà ñêðèïò.

Streamnewal 15-05-2014 05:39 2351629

Ñïàñèáî. Áóäó ïðîáîâàòü.


Âðåìÿ: 20:43.

Âðåìÿ: 20:43.
© OSzone.net 2001-