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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■45200  Re[5]: C#によるExcelの総ページ数
□投稿者/ toshi -(2010/01/05(Tue) 19:11:24)
    No45199 (初心者 さん) に返信
    > ■No45185 (ごう さん) に返信
    >
    > ありがとうございます。
    > 参考になりました。
    > なんとか、取得することができました。
記事No.45179 のレス / END /過去ログ76より / 関連記事表示
削除チェック/

■58812  Re[6]: C#でExcelオートフィルタ結果削除
□投稿者/ 5dogsFuji -(2011/04/27(Wed) 09:07:22)
    No58798 (shu さん) に返信
    > ■No58797 (5dogsFuji さん) に返信
    >
    > 例えば提示されている
    >>setRange1.SpecialCells(XlCellType.xlCellTypeVisible, Type.Missing)
    > この部分ですがこれはRangeオブジェクトになってますが、これでは処理が出来ないということでしょうか?


    shuさん、お付き合いいただき本当にありがとうございます。
    下記の通り、このsetRange1はオートフィルタを行うための範囲(タイトル行含む)をセットしています。

    setRange1 = ((Excel.Range)this.xlsSSheet.get_Range(xlsSSheet.Cells[1, 1], xlsSSheet.Cells[xlsSSheet.UsedRange.Rows.Count, xlsSSheet.UsedRange.Columns.Count]));
    setRange1.AutoFilter(21, "*確認対象外*", Excel.XlAutoFilterOperator.xlAnd, Type.Missing,false);

    つまり、このsetRange1の可視セルとするとタイトル行も含まれてしまうのです。
    オートフィルタ後の結果に対して新たに、「タイトル行を抜いた範囲」をRangeオブジェクトにセットするか、
    setRange1からタイトル行を省いて削除という処理ができないものかと・・・。
記事No.58785 のレス /過去ログ98より / 関連記事表示
削除チェック/

■86284  Re[1]: C# csvファイル読み込みの質問です
□投稿者/ WebSurfer -(2018/01/13(Sat) 12:53:16)
    No86281 (普通のサラリーマン さん) に返信

    問題の原因や解決策の提案はすでに魔界の仮面弁士さんが No86283 でされていますの
    で、直接の回答ではないですが、別の案(CSV パーサーの利用)を提案させてください。

    そんな提案は不要ということでしたら以下はスルーでお願いします。

    質問者さんが最初の質問でアップされたコードでは、ファイルを読んで文字列を作り、
    String.Split メソッドでその文字列を区切るといった方法を取られてます。

    でも、改行コードやデリミタ(コンマのような区切り文字)がフィールド値の中に
    あったり、改行コードが異なったり(例: Windows は CR + LF、Unix は LF)する
    CSV ファイルの場合そのような単純な方法は使えません。

    詳しくは以下の記事の最初のセクション「CSV形式とは?」を見てください。

    CSV形式のファイルをDataTableや配列等として取得する
    http://dobon.net/vb/dotnet/file/readcsvfile.html

    改行コードやデリミタがフィールド値の中にある場合、フィールド値をダブルクォー
    ト (") で囲むと言った約束を設けて対応しますが、そのような CSV ファイルの処置
    が可能なパーサーを自力で作るのは簡単ではありません。

    なので、TextFieldParser などの既存のパーサーを使うのがよさそうです。上に紹介
    した記事にコード例がありますので見てください。

    TextFieldParser は Microsoft が提供している Visual Basic .NET 用のクラスライ
    ブラリです。C# でも Microsoft.VisualBasic.dll を参照に追加してやれば使えます。

    何といっても Microsoft のライブラリなので、.NET アプリならこれを使うのが無難
    そうな気がします。
記事No.86281 のレス /過去ログ148より / 関連記事表示
削除チェック/

■86286  Re[2]: C# csvファイル読み込みの質問です
□投稿者/ 魔界の仮面弁士 -(2018/01/13(Sat) 15:47:46)
    No86284 (WebSurfer さん) に補足
    > 別の案(CSV パーサーの利用)を提案させてください。

    CsvHelper なども有名ですね。
    https://www.nuget.org/packages/CsvHelper/
    http://joshclose.github.io/CsvHelper/reading#getting-all-records


    > なので、TextFieldParser などの既存のパーサーを使うのがよさそうです。

    Microsoft.VisualBasic.FileIO.TextFieldParser は確かに高機能ですが、
    『空行を無視する』仕様になっていることにご注意ください。

    この「空行を無視する」という TextFieldParser の制限により、
    私が No86283 で例に挙げた CSV 群、たとえば:
    >>> string strStream = "111\r\n\r\n333\r\n444";
    などは、残念ながら正しく処理することができません。


    > 改行コードやデリミタがフィールド値の中にある場合、

    空行無視という制限により、TextFieldParser ではたとえば
     string strStream
       = "BARCODE,NAME\r\n"
       + "4901313037508,ソフトサラダ\r\n"
       + "4582409181895,\"選べる!\r\nみんなのスープ\r\n\r\n8袋入\"\r\n"
       + "4901990328544,\"ごつ盛 坦々麺\"\r\n";
    のようなデータも正しく読み取れません。


    上記の CSV データをパースした場合、たとえば
     var lines = new string[4][];
     lines[0] = new string[2] { "BARCODE", "NAME" };
     lines[1] = new string[2] { "4901313037508", "ソフトサラダ" };
     lines[2] = new string[2] { "4582409181895", "選べる!\r\nみんなのスープ\r\n\r\n8袋入" };
     lines[3] = new string[2] { "4901990328544", "ごつ盛 坦々麺" };
    へと解釈されることが期待されるわけですが、
    Microsoft.VisualBasic.FileIO.TextFieldParser では空行部が読み飛ばされるため、
    たとえ HasFieldsEnclosedInQuotes = true / TrimWhiteSpace = false を
    指定したいたとしても、ReadFields メソッドで順次読み込みする限り
     var lines = new string[4][];
     lines[0] = new string[2] { "BARCODE", "NAME" };
     lines[1] = new string[2] { "4901313037508", "ソフトサラダ" };
     lines[2] = new string[2] { "4582409181895", "選べる!\r\nみんなのスープ\r\n8袋入" }; // ★破損行
     lines[3] = new string[2] { "4901990328544", "ごつ盛 坦々麺" };
    のように解釈されてしまうことになります。
記事No.86281 のレス /過去ログ148より / 関連記事表示
削除チェック/

■100642  Re[7]: NAS上のファイルの上書き保存が出来ない
□投稿者/ HattariB -(2022/10/04(Tue) 14:54:04)
    Windowsサーバーで動いているのはなぜなのか?
    不思議。
記事No.100614 のレス /過去ログ175より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -