お世話になります。
たとえばこのテーブルをブラウザからデータスクレイピングすると
テスト | テスト 123 |
---|---|
sample | sample 2 |
カラム名(テスト123)に改行が混じっており、
カラム名に改行を含んで取得することは可能でしょうか。
row.Item(“テスト” + vbCrLf).ToString
→ やってみましたができませんでした。
お世話になります。
たとえばこのテーブルをブラウザからデータスクレイピングすると
テスト | テスト 123 |
---|---|
sample | sample 2 |
カラム名(テスト123)に改行が混じっており、
カラム名に改行を含んで取得することは可能でしょうか。
row.Item(“テスト” + vbCrLf).ToString
→ やってみましたができませんでした。
こちらを、 row.Item("テスト" + vbLf + "123").ToString
としてお試しください。
Excelのセル内部で行われる改行は、vbLfで指定する必要がありました。
列名に改行が入って、以降の処理で改行記号を意識しなければならない
と言うのでしたら、いっそ、列名から改行記号を取り除くってのはどうですか?
代入アクティビティ
左辺:DT.Columns(ix).ColumeName
右辺:DT.Columns(ix).ColumeName.Replace(Controlchars.Cr,“”).Replace(Controlchars.Lf,“”)
こんな感じ
ご回答ありがとうございます!
DT.Columns(ix)
のixというのは全列に対し、改行記号を取り除くという認識であってますでしょうか。
無知で申し訳ございません。
こんにちは
これの対応は厳密にはブラウザによって変わる可能性があります。
IEの場合、スクレイピングだけではなくGet Textなどもそうなると思いますが、対象テキスト中の<br />
はCR+LFになります。そのためヘッダの値は
row.Item(“テスト” + vbCrLf+"123").ToString
となると思います。
一方、Chrome, Firefoxの場合、対象テキスト中の<br />
はLFになります。そのためヘッダの値は
row.Item(“テスト” + vbLf+"123").ToString
となると思います。
いずれにしましても、うまくヘッダの文字列が一致しない時は、一度そのヘッダの文字列(ExtractDataTable.Columns(カラム番号).ColumnName
)をファイルに書き出してみて、どのような文字列になっているかを確認した方が良いと思います。(場合によってはバイナリーエディタで見たほうが良いケースもあります。)
「繰り返し(コレクションの要素)」を使用します。
コレクションに、DataTable.columnsを指定すると、列全体を指定した事になります。
要素のitemは、右側のパラメタパネルの「TypeArgument」の指定で、DataColumn型を指定します。
それと、同じくパラメタパネルの「出力-現在のインデックス」にInt32型の変数ixを定義します。
すると、ixは0から列の数まで繰り返しますので、本体に代入アクティビティを記載すると、全ての列に対して改行コードが除去される事になります。