Skjule html i excel midlertidig

Tonny Kluften

Administrator
Jeg har kolonner i excel (xlsx-fil) som viser html.

Eks., dette er en kolonne i en rad.

Kode:
<ul> <li> <span class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
<span lang="EN-US">Material: PP +PS.</span></span></li> <li> 
<span class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
<span lang="EN-US">Double layered design.</span></span></li> <li> 
<span class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
<span lang="EN-US">Good insulations effect.</span></span></li></ul> &nbsp;<br />

Jeg ønsker midlertidig å skjule koden slik at kun teksten står igjen slik at jeg kan bruke "søk og erstatt" for å oversette teksten. Etter at teksten er oversatt ønsker jeg å "skru på" koden igjen slik at jeg kan lime inn teksten riktig formatert på nettsider.

Evt. hvis ikke det går å gjøre det i excel, kan jeg eksportere alt innholdet til noe annet program og ordne det der, så lime det inn igjen i xlsx fila?

Takker for hjelp.
 
Sist redigert:

RAH

Medlem
Aha!

Personlig ville jeg laget et lite php script, finn en måte å skille radene på og kjør:

1. Strip html tags med strip_tags()
2. skriv til CSV fil

Åpne fil i excel.
 

RAH

Medlem
Mener du da at jeg først legger ut fila som en webside, så kjører et php script? Hvordan får jeg kodene tilbake etter at jeg har oversatt teksten?


Jeg antok at det eneste du ville var å få vekk html (kode), og få plassert innholdet (uten kode) i en celle. For så å gjøre det med ca 500 linjer.

1. Hva ønsker du å gjøre? Hva slags resultat ønsker du?

2. Hvor får du data fra?


Så skal jeg forsøke å hjelpe deg igjen :)


Ps: du trenger ikke laste opp en webside, du kan kjøre det lokalt via WAMP/MAMP e.l.
 

RAH

Medlem
Her er hva jeg tenkte :)

PHP:
<?php

// Få data fra et sted
	$rows = array("<p>paragraf 1</p>", "<p>paragraf 2</p>");
	
	$fh = fopen("import.csv", "w");
	
	foreach($rows as $row) {
	
		$cleanText = strip_tags($row);
		
		fwrite($fh, $cleanText.";\n");
	}
?>

Deretter kan du åpne import.csv i excel.
 

clinton4

Medlem
Hvis du kopierer innholdet, for så å lime det inn igjen. Tror jeg du skal få et valg noe alla "lim inn kun tekst". Forutsetter at du høyreklikker med musa for å lime inn.
 

Pong

Jeg selger sʇɥƃıluʍop :)
Jeg ville gjort det slik at jeg ville hatt HTML'en i kolonne A (skjult), ordet som må oversettes i kolonne B, så sender du til oversetteren og får fylt ut kolonne C.
Du lager så en kolonne D med en substitute av verdien i kolonne A der du bytter teksten i B med den du har fått oversatt i kolonne C.

Eneste du trenger å gjøre er å få Excel (eller et annet verktøy) til å strippe vekk alt mellom <> (non-greedy) fra kolonne A, -- slik at du får teksten i kolonne B på en 'billig' måte.

Kunne sikkert funnet/lagt en vba-funksjon til det - men det måtte bli senere i uken en gang.

Edit: Og sleng inn en ekstra kolonne med radnummer slik at du kan sortere tilbake til opprinnelig rekkefølge; det kan tenkes at oversetteren ønsker å sortere på kolonne B for å kjapt kunne ta eventuelle dubletter.
 
Sist redigert:

Tonny Kluften

Administrator
Tror jeg har forklart meg litt dårlig her.
Jeg har en excelfil med en kolonne lik dette:

Rad 1:
Kode:
<ul> <li> <div style="margin:0cm 0cm 0pt;" class="MsoNormal">
<span style="font-family:'Verdana','sans-serif';" lang="EN-US">
<span style="font-size:small;">Silikon i matkvalitet<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></span></span></div> </li> <li> 
<div style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:'Verdana','sans-serif';" lang="EN-US">
<span style="font-size:small;">Fashionable and foldable<o:p></o:p></span></span></div> </li> <li> 
<div style="margin:0cm 0cm 0pt;" class="MsoNormal">
<span style="font-family:'Verdana','sans-serif';" lang="EN-US"><span style="font-size:small;">Brings pleasure into your life <o:p></o:p></span></span></div> </li> </ul>
Rad 2
Kode:
<ul> <li><span style="font-family:Verdana;font-size:16px;">Soft and convenient to use</span></li> <li>
<span style="font-family:Verdana;font-size:16px;">Soft&nbsp;brush hair&nbsp;design</span></li> <li>
<span style="font-family:Verdana;font-size:16px;">Makes&nbsp;feeder bottle&nbsp;clean and healthy</span></li> </ul>

Osv. Ca. 500 rader. Alle radene er forskjellige og har forskjellig html.
Jeg ønsker å fjerne all koden og bare beholde klarteksten slik at jeg kan oversette ved å bruke søk og erstatt. Når jeg er ferdig med oversettelsen ønsker jeg å sette inn igjen all koden.
 
Sist redigert:

adeneo

Medlem
Det du trenger er litt Visual Basic ting.

I Excel trykk ALT-F11 for å åpne VB, finn arbeidsboken du jobber med i listen øverst til venstre, du ser navnet på dokumentet under MS Excel Objects eller noe lignende.

Når du har valgt en arbeidsbok, trykker du menyvalget "Insert", deretter "module".

Nå kan du skrive en macro i VB, og macroen du trenger blir noe sånt:

Kode:
Sub RemoveTags()
   Dim r As Range
   Selection.NumberFormat = "@"  'set cells to text numberformat
   With CreateObject("vbscript.regexp")
      .Pattern = "\<.*?\>"
      .Global = True
      For Each r In Selection
         r.Value = .Replace(r.Value, "")
      Next r
    End With
End Sub

Lim koden inn i vinduet, gå tilbake til excel og velg alle cellene du ønsker å filtrere, det er bare å velge celler som vanlig (med shift eller musen osv.)

Når cellene er valgt, trykk på menyvalget "utvikler", deretter macro øverst lengst mot venstre, og i listen som kommer opp over macroer er nå "RemoveTags", trykk på kjør, og all html forsvinner.
Det er lettere enn det ser ut, og alt ovenfor tar deg bare noen minutter å gjennomføre.

Hvordan du får HTML'en tilbake etter at du først har fjernet den er vel verre, prøvde å bruke hide i stedet for replace, men det virker bare hvis man skjuler hele celler, usikker på hvordan man bare skjuler deler av tekst i celler, og får den tilbake igjen, må se litt mer på det ?
 
Sist redigert:
Topp