C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

C# エクセル読込時セル内改行の削除 /ぽっくる (21/02/18(Thu) 10:54) #96842
Re[1]: C# エクセル読込時セル内改行の削除 /Hongliang (21/02/18(Thu) 11:15) #96844
Re[1]: C# エクセル読込時セル内改行の削除 /魔界の仮面弁士 (21/02/18(Thu) 11:52) #96845


親記事 / ▼[ 96844 ] ▼[ 96845 ]
■96842 / 親階層)  C# エクセル読込時セル内改行の削除
□投稿者/ ぽっくる (1回)-(2021/02/18(Thu) 10:54:12)

分類:[C#] 

エクセルデータをC#に読込んだデータから、セル内の改行を削除したいのですが、方法がわかりません。
読みだしたデータには下記のようにReplaceメソッドを使ってみましたが、改行にあたる文字が適切でないのか、改行を削除できません。

for (int j = 1; j <= width2; j++)
{
DataString2[1, j] = Convert.ToString(RangeArray2[1, j]);
DataString2[1, j] = DataString2[1, j].Replace(Environment.NewLine, "");
DataString2[1, j] = DataString2[1, j].Replace("LF", "");
DataString2[1, j] = DataString2[1, j].Replace("CRLF", "");
DataString2[1, j] = DataString2[1, j].Replace("0A", "");
DataString2[1, j] = DataString2[1, j].Replace("0D", "");
}

RangeArray2が読みだしたデータです。
大変すみませんが、ご教授頂けたら幸いです。
[ □ Tree ] 返信 編集キー/

▲[ 96842 ] / 返信無し
■96844 / 1階層)  Re[1]: C# エクセル読込時セル内改行の削除
□投稿者/ Hongliang (1155回)-(2021/02/18(Thu) 11:15:37)
改行文字をC#のソースコードにて記述する場合、バックスラッシュを使ったエスケープシーケンスを使用します。
CR は "\r"
LF は "\n"
です。
[ 親 96842 / □ Tree ] 返信 編集キー/

▲[ 96842 ] / 返信無し
■96845 / 1階層)  Re[1]: C# エクセル読込時セル内改行の削除
□投稿者/ 魔界の仮面弁士 (2973回)-(2021/02/18(Thu) 11:52:35)
No96842 (ぽっくる さん) に返信
> エクセルデータをC#に読込んだデータから、セル内の改行を削除したいのですが、方法がわかりません。

どうやって読み込んだのかはさておき、その読み込まれたデータが
RangeArray2 に格納されている、という状況なのですよね。

それではまず、RangeArray2 のデータ型を教えてください。

わざわざ Convert.ToString しているところを見ると、
string 型の配列として宣言されているわけでは無さそうですね。

object 型の配列なのか、あるいは dynamic でしょうか。
それとも、2 引数のインデクサを持つコレクションとか?



> 改行にあたる文字が適切でないのか、改行を削除できません。

Excel データの場合、セル内改行はラインフィード '\n' となることが一般的なので、
.Replace("\n", "") になろうかとは思いますが、その前に!


そのセル内改行データは現在、どのように読み込まれているのですか?

<1> RangeArray2[行, 列] の中に、改行データが含まれている。
<2> RangeArray2[行, 列] のセル位置は正しいが、セル内の改行データが別の char に化けた状態
<3> RangeArray2 のセル座標が改行によって崩れてしまい、複数の行に分割されてしまっている。


現在の状況が分からないことには、それに対する対策の打ちようがありませんので、
コードを書いて試行錯誤する前に、状況確認が先だと思いますよ。

<2>であったなら、データを補正するのではなく、読み込み処理そのものの見直しが必要ですし、
<1>であれば、その改行データが、"\r\n" なのか "\r" なのか "\n" なのかそれ以外で
保持されているかを調べる必要があるでしょうね。
[ 親 96842 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -