すみません、プログラムのご相談ではないのですが....
システムのマスタデータをユーザから受けまして、Oracleデータベースのあるテーブルへ インポート(SQLLoader)を行おうと思っています。
(SQLServerであれば バルクインサートを使うところでしたが)
受け取ったデータは .xlsxなので 自分で 標題のとおり CSVもしくは タブ区切りテキストへ 変換した上 利用しようと思いました。
【相談内容】
xlsxから CSVもしくは タブ区切りテキストへ 変換したら、明らかに 妙なところで 改行を起こしてしまっている行が 多数発生しています。
全部ではありません。
取引先名称の後ろに 何か目には見えない 余計なコードが含まれていることを疑っています。これを除去したいです。
Excel側で 対応すべきか エディタで 対応すべきか
また、対応するにしても どういう手立てを とれば 良いのかが分からないです。
(問題を起こしている各行について、要因の列はすべて同じといえるが 全て同じ文字コード起因で改行が起こされているのか窺い知れない)
サクラエディタの置換で、オプションに 正規表現選択をOnにした上で 「\r\n」 を 「」に変換してしまうと
全行が 術つなぎになってしまいました。
不用意な改行をとり除きたいの一言ですが、どういった手順をとるのがベストでしょうか、ご教示を頂けないでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
この手順ではどうでしょうか。(末尾の列がXとして)
1.Excelの末尾の列値へ特殊文字を付加。(例えばX列へ◆◆を付ける)
2.csvファイルへ書き出し。
3.サクラエディタで改行文字をなしへ変換。(1行にする)
4.◆◆を改行文字へ変換して戻す。
投稿2020/07/09 06:49
編集2020/07/09 06:49総合スコア553
0
取引先名称の後ろに 何か目には見えない 余計なコードが含まれていることを疑っています。これを除去したいです。
テキストエディタで開いて改行されて見えるのはCrかLfの何れかです。
サクラエディタならそれぞれ(Lf:←、Cr:↓、Crlf:⏎)で表示されているはずです。
この改行されるものは、一つの項目内で改行が使用されているのではないですか?
これを除去してしまうと、ユーザーの意図通りのデータでは無くなってしまいます。
これらのデータをテキストエディタで参照すると、行の途中で改行されて見えますが、データとしては正しいものです。
但し、このデータを取込む際には行の終端である改行なのか項目内の改行なのかを識別させる必要があり、通常は文字列引用符(")を指定します。
残念ながら、excelでは指定が出来ませんので、CSVでの受領に切り替えるか、Accessなどを経由して、CSVを出力する。
または、対応できるCSVエディターがあるかもしれないので探してみるのもいいかもしれません。
大量なデータでなければ、A5:SQLというDBツールではエクセルデータをそのまま貼り付けできたりします。
投稿2020/07/09 04:09
編集2020/07/09 04:51総合スコア25327
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/09 05:32
2020/07/09 06:12 編集
2020/07/09 06:18 編集
2020/07/09 06:24 編集
2020/07/09 06:29
2020/07/09 06:35 編集
2020/07/09 06:52
0
エクセルで「Ctrl+h」で置換ボックスをだし、
検索する文字列に「Ctrl+j」として
すべて置換してみるのはいかがでしょうか。
※Ctrl+jは見た目は何もないように見えますが改行を表します。
投稿2020/07/09 03:30
総合スコア1925
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/09 04:20
2020/07/09 04:32
0
ベストアンサー
実際のデータになにが入ってるかをまず確認しましょう
あなたは不要な改行を、といってますが、それは果たして改行なんでしょうか
投稿2020/07/09 03:29
総合スコア88042
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/09 04:21
2020/07/09 04:26
2020/07/09 04:37
2020/07/09 05:19
2020/07/09 06:35
2020/07/09 06:56
0
LFを本当に削っていいのならば、sakuraエディターで
- \nを""(空列)に変換する
- \rを\r\nに変換する
の2ステップでCRLFは元のままで、LFのみ削除できます。
しかしあなたが余計なコードと判断しているコードは、本当に余計なコードとして削除して処理していいことを(周囲、上司に)確認していますか?
excelの1つのセル内で2行以上のデータを表示したい場合、改行したい位置でCNTL+改行と入力することで画面上は改行され、内部的にはLFコードが挿入されます。
excelでcsvに保存する場合、セルの内容に空白や改行記号を含むセルは「"」で囲まれます。
LFコードを含んでエディター画面上は改行されていても「"」で囲まれた範囲が1つのセルの値です。
セルのデータ中にLFコードを含んでいても問題ないようなプログラムにして、セル内のLFコードはそのままLFコードとして使用したほうがいいのでは?
(それともデータを改変して利用することが認められている/データを改変して利用することが求められているのですか?)
なお、sakuraエディターでこのcsvファイルを開くとLFコード部分でも改行されて表示されますが、通常の改行(CRLF)かLFかはエディター画面の下のコード表示に部分にCRLFやLFと表示されるので区別が付きます。
投稿2020/07/10 02:59
総合スコア1240
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/10 05:01
2020/07/10 06:45
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
関連した質問
Excelデータの提供を受けたが、1列に不用意なコードが入っているとみえ、CSVもしくはタブ区切りテキストへ出力時 妙なところで改行されてしまう