需要帮助编辑base64代码

时间:2017-11-06 16:12:12

标签: xml excel-vba vba excel

有人可以帮我调整下面的代码,将文件转换为base64字符串。假设我在单元格A1中有一个文件和文件路径。单元格A1包含文本(“C:\ testing \ test1.xls”)。我想base64 test1.xls为字符串。我想循环遍历A列中的所有文件。感谢任何帮助。

这是我得到的代码。此代码转换存储在单元格A1中的文本。

class employeecheckinform(forms.ModelForm): 
    checkin = DateTimeField(input_formats=["%b %d"])
    class Meta: 
        model = Checkin 
        fields=[ 'user', 'employee_ID', 'checkin', ] 

谢谢! 千斤顶

1 个答案:

答案 0 :(得分:0)

请参阅下面的编辑:

首先,重要的是我们使用变量i添加了一个循环,它也指定了我们正在访问的行。

我们还创建了变量lastRow,并使用Range.Find方法查找A列中的最后一个非空行。

第三个编辑也非常重要,即将objNode元素添加到objXML文档中。

Sub base64()
    Dim objXML As DOMDocument
    Dim i As Integer
    Dim lastRow As Long
    Dim objRoot As IXMLDOMElement
    Set objXML = New DOMDocument
    Set objRoot = objXML.createElement("root")
    objXML.appendChild objRoot


    Range("A1").Select
    lastRow = Columns("A").Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    For i = 1 To lastRow
        addElement i, objRoot, objXML
    Next i

    MsgBox objXML.XML

End Sub

Private Function addElement(rowNumber As Integer, objRootNode As IXMLDOMElement, objDOM As DOMDocument)
    Dim objNode As IXMLDOMElement
    Dim arrData() As Byte
    Set objNode = objDOM.createElement("b64")

    arrData = StrConv(Cells(rowNumber, 1).Value, vbFromUnicode)
    objNode.DataType = "bin.base64"
    objNode.nodeTypedValue = arrData

    objRootNode.appendChild objNode
End Function