Как извлечь элементы HTML?

Как извлечь элементы HTML?

У меня есть несколько сотен таких div-ов, которые мне нужно отсортировать и отфильтровать.

Я хотел бы удалить ВЕСЬ HTML и оставить только следующее:

Пример

  • Имя= Кит
  • Электронная почта= [электронная почта][email protected][/электронная почта]
  • Магазин= Магазин 1 (Здесь есть только 2 варианта. Магазин 1, Магазин 2)

Весь код ниже находится в отдельной ячейке, всего около 400 ячеек.

<div userid=""286"">
    <div id=""694"">
        <h1 style=""display:none"">Keith</h1>
        <div>
            <label class=""ufo-cform-label"">Name</label>
        </div>
        <div>Keith</div>
    </div>
    <div id=""697"">
        <h1 style=""display:none"">[email protected]</h1>
        <div>
           <label class=""ufo-cform-label""> Email Address</label>
        </div>
        <div>[email protected]</div>
    </div>
    <div id=""698"">
        <h1 style=""display:none"">Store 1</h1>
        <div>
            <label class=""ufo-cform-label"">Please choose your closest store</label>
        </div>
        <div>Store 1</div>
    </div>
</div>

Это вообще возможно в Excel? Спасибо за любые указания.

решение1

К сожалению, в вашем вопросе не хватает подробностей, что затрудняет ответ.

Ячейки в том же формате? Изменяется ли HTML или только значения. Вы всегда ищете Имя, Электронную почту и Магазин? Разрывы строк находятся в одном и том же месте? Вы также не упоминаете, хотите ли вы использовать формулу рабочего листа или VBa.

Исходя из приведенного вами примера, этот VBa должен выполнять основные действия или, по крайней мере, давать вам достаточно информации для начала работы.

Sub DoTheThingTheyWant()

Dim myValue As String
myValue = Range("A1").Value

Dim myValueSplit() As String
myValueSplit = Split(myValue, ">")

Dim nameSplit() As String


Range("B1").Value = "Name: " & GetValue(myValueSplit, 9)
Range("B2").Value = "Email: " & GetValue(myValueSplit, 13)
Range("B3").Value = "Store: " & GetValue(myValueSplit, 29)

End Sub


Function GetValue(myValueSplit() As String, pos As Integer)

Dim result() As String

result = Split(myValueSplit(pos), "<")

GetValue = result(0)


End Function

Помните, всегда сначала сохраняйте копию своей работы в качестве резервной копии, так как макросы не отменяют результаты!

решение2

Немного опоздал на вечеринку, но мне нужен был ответ для себя и нужно было сделать это вручную без VBA. Просто использовал вложенные подстановки, так легко для пользователей, не владеющих VBA:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE([@Description],"<html-blob>",""),"gt;",""),"</i>",""),"<i>",""),"</html-blob>",""),"</a>",""),"amp;",""),"<br />",""),"</span>",""),"&nbsp",""),"<a href=",""),"</b>",""),"<span>",""),"<br>",""),"<b>",""),"</u>",""),"<u>","")

Чтобы использовать его, замените «[@Description]» на исходные данные.

Чтобы добавить больше, просто скопируйте среднюю функцию замены, выглядящую следующим образом:

SUBSTITUTE([@Description],"<html-blob>","")

и вставьте его в исходник в формуле, здесь "[@Description]", потому что я использовал это в таблице. Измените дубликат замены.

Связанный контент