输出的VBScript输出HTML表

时间:2016-11-17 03:08:15

标签: html vbscript

我正在尝试读取包含行的文本文件,然后以html文件中的列形式输出它们。使用WScript.echo在屏幕上显示它时,我没有问题,但是我无法将它放到HTML文件中的表格中。尝试运行vbs文件时出现以下错误:类型不匹配:' OpenTextFile'。任何指导都将非常感谢

enter image description here

Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim OutputHTML : Set OutputHTML = fso.CreateTextFile("C:\Users\Istaley.RXDATA\Desktop\NewEmployeeTest\Part2_TableData.html")
Dim file : Set file = fso.OpenTextFile("C:\Users\Istaley.RXDATA\Desktop\NewEmployeeTest\Part2_data.txt", 1, True)
Dim fc : fc = file.ReadAll : file.close : Dim fcArray : fcArray = Split(fc, vbCrLf)
OutputHTML.WriteLine "<html>"
OutputHTML.Writeline "<body>"
OutputHTML.WriteLine "<table BORDER=1>"
Dim opArray() : ReDim opArray(0)
For Each row In fcArray
    Dim tmp: tmp = Split(row, "|")
    For ent=0 To UBound(tmp)
        If ent  > UBound(opArray) Then
            ReDim Preserve opArray(UBound(opArray)+1)
            opArray(ent) = Trim(tmp(ent))
        Else
            If Len(opArray(ent)) > 0 Then
                OutputHTML.WriteLine "<tr>"
                opArray(ent) = opArray(ent) & " " & Trim(tmp(ent))
                OutputHTML.WriteLine "</tr>"
            Else
                opArray(ent) = Trim(tmp(ent))
            End If
        End If
    Next
Next
WScript.echo Join(opArray, vbCrLf)
OutputHTML.WriteLine "</table>"
OutputHTML.WriteLine "</body>"
OutputHTML.WriteLine "</html>"
OutputHTML.Write Join(opArray, vbCrLf) : OutputHTML.Close

2 个答案:

答案 0 :(得分:1)

问题是这一行。OpenTextFile的第一个参数接受一个字符串,但是你已经传递了一个Object。您已使用CreateTextFile打开了要写入的文本文件。

Set WriteOutput = fso.OpenTextFile(OutputHTML, 8, True)

删除此行并将WriteOutput的所有剩余实例更改为OutputHTML

答案 1 :(得分:1)

我知道这是一个古老的话题,但对于那些希望做同样事情的人来说,这可能是有用的,就像我一样。这有点匆忙,但我已经内联添加了评论。比特来自多个地方,所以这不是我自己的工作......

Function LoadFile(File)
    On Error Resume Next
    'Declaire all variables
    Dim fso,F,ReadText,strError
    Dim ReadArray
    Dim ReadHTMLOutput, ReadRowCount, ReadRowItem, ReadRowItemSplit, ReadElementCount, ReadElementItem
    'Create the object to read files
    Set fso = CreateObject("Scripting.FileSystemObject")
    'Set the file to read and the format
    Set F = fso.OpenTextFile(File,1)
    'If there's a problem, say so...
    If Err.Number <> 0  Then
        strError = "<center><b><font color=Red>The file "& File &" dosen't exists !</font></b></center>"
        OutputTable.InnerHTML = strError
        Exit Function
    End If
    'Read the contents of the file into ReadText
    ReadText = F.ReadAll

    'Split the text based on Carriage return / Line feed
    ReadArray = Split(ReadText,vbCrLf)
    'fill the output variable with the HTML of the start of the table
    ReadHTMLOutput = "<table border=" & chr(34) & "2" & chr(34) & ">" & vbcrlf
    'starting at 0 until the last line in the array, run through each line
    For ReadRowCount=0 to UBound(ReadArray)
        'Take the whole row into it's own variable
        ReadRowItem = ReadArray(ReadRowCount)
        'Split the row (separated by commas) into an array
        ReadRowItemSplit = Split(ReadRowItem,",")
        'Add the HTML for the row of the table
        ReadHTMLOutput = ReadHTMLOutput & "<tr>" & vbcrlf
        'starting at 0 until the last entry of the row array, run through each element
        For ReadElementCount=0 to UBound(ReadRowItemSplit)
            'Read the element into a variable
            ReadElementItem = ReadRowItemSplit(ReadElementCount)
            'If the element is blank, put a space in (stops the cell being formatted empty)
            If ReadElementItem = "" Then ReadElementItem = "&nbsp;"
            'Add the HTML for the cell of the row of the table
            ReadHTMLOutput = ReadHTMLOutput & "<td>" & ReadElementItem & "</td>" & vbcrlf
        'Go to the next element in the row
        Next
        'Add the HTML for the end of the row of the table
        ReadHTMLOutput = ReadHTMLOutput & "</tr>" & vbcrlf
    'Go to the next row in the file
    Next
    'Add the HTML for the end of the table
    ReadHTMLOutput = ReadHTMLOutput & "</table>" & vbcrlf
    'Fill the DIV with the contents of the variable
    OutputTable.InnerHTML = ReadHTMLOutput
End Function

并在HTML中:

<div id="OutputTable"></div>

这样,DIV就会填充ReadHTMLOutput

中的HTML