web-dev-qa-db-ja.com

GoogleスプレッドシートでJOINを使用してHTML本文を作成するにはどうすればよいですか?

Importxmlを使用して、Webサイトからデータを取得しています。これまでのところ、この部分はうまく機能しています。ただし、これらのセルのテキストを、WebサイトにアップロードできるHTMLテキストの1つのセルに結合する必要があります。スクリーンショットを添付しましたが、フォーミュラ/コーディングは絶対に間違っています!しかし、それは理想的なものです。これのためのより良い式/コードを作成するにはどうすればよいですか?私はこれでまだ新しいです!

Importxmlを使用して必要なデータを取得します。 enter image description here

私はこのすべてのデータをHTML形式でなければならない1つのセルに入れようとしています: enter image description here

2
robbie777

開始するには、HTMLタグ内の各引用符を2倍にして、キャンセルせずに適切に表示するようにします。

class="p1"class=""p1""になります

次に、p1要素のリストについては、連結の代わりにregexreplaceを使用してデータをタグで囲むことができます(私の意見では少しきれいです)

したがって、単一セル内のすべての正規表現は(.*)になります。これにより、後で$1で参照できるキャプチャグループが作成されます

私自身のサンプルデータを使用してデモンストレーションを行います。 enter image description here 単一行の場合、これは次のようになります。

=REGEXREPLACE(A1,"(^.*$)","<p class=""p1"">$1</p>"))

うまく印刷されます:

最終的にjoinを使用する場合、すべてをコピーする必要はありません。最初にarrayformulaを使用して、この式でp1要素をスタックできます。

=arrayformula(if(istext(A2:A),REGEXREPLACE(A2:A,"(^.*$)","<p class=""p1"">$1</p>"),))

enter image description here

次に、すべてを1つのセルにグループ化します。

=join(char(10),filter(B:B,istext(B:B)))

これが最終版の外観です: enter image description here

3

Googleスプレッドシートの数式では、テキストを引用符で囲む必要があります。テキストに引用符が含まれる場合は、内側の引用符を二重にする必要があります。例

内部引用符のないテキスト
式:="<p>Hello world!</p>"
表示される結果:<p>Hello world!</p>

内部引用符付きのテキスト
式:="<h1 class=""p1"">Hello world!</h1>"
表示される結果:<h1 class="p1">Hello world!</h1>

スカラー参照を使用
A1値:Hello world!

シンプルなタグ
B1式:="<p>"&A1&"</p>"
B1表示値:<p>Hello world!</p>

属性付きタグ
B2式:="<h1 class=""p1"">"&A1&"</h1>"
B2の表示結果:<h1 class="p1">Hello world!</h1>

範囲参照を使用
入力

    |         A
----+--------------------- 
 2  | Hello Mexico
 3  | Hello USA
 4  | Hello Canada

C1数式:=ArrayFormula("<p>"&A2:A4&"</p>")

結果

C1:C3表示値:

    |         C
----+--------------------- 
 1  | <p>Hello Mexico</p>
 2  | <p>Hello USA</p>
 3  | <p>Hello Canada</p>
0
Rubén