C#・ファイルハンドリング関連

【C#】【XML】C# でXMLシリアライズ・デシリアライズ ~ DataContractSerializerクラス ~

■ はじめに https://dk521123.hatenablog.com/entry/22166698 で、XMLシリアライズ・デシリアライズを行ったが、 XmlSerializerクラスでは、Dictionary をシリアル化できない。 色々な方法があるようだが、DataContractSerializerクラスでやるのが 一番スマ…

【C#】ini ファイルの扱い

■ iniファイルとは? * iniファイル (イニ・ファイル) = 初期化ファイル (初期化 = INItialization) * 初期時のWindowsなどでの設定ファイル形式 => レジストリ導入により使われなくなった => 今だったら、XMLが主流 ファイル形式 ; コメント文 [セクショ…

【C#】【XML】C# でXMLファイルを扱うには ~ 入門編 ~

■ サンプル Program.cs using System; using System.Xml.Linq; namespace xmlDemo1 { class Program { static void Main(string[] args) { XDocument xdoc = XDocument.Load(@"C:\sample.xml"); foreach (var xbook in xdoc.Root.Elements()) { XElement xna…

【C#】【Excel】Excel を PDF化する

■ Excel を PDF化するには * Workbook.ExportAsFixedFormat()を使うといい。 http://msdn.microsoft.com/ja-jp/library/microsoft.office.tools.excel.workbook.exportasfixedformat.aspx ■ 使用上の注意 環境 [1] .NET3.5以上 [2] Excel2007 SP2以上がイン…

【C#】オープン中のファイルにアクセスしたい ~FileShare.ReadWrite~

■ 問題点 StreamReaderクラスやStreamWriterクラスでは、オープン中のファイルにアクセスすると、 例外・IOException「別のプロセスで使用されているため、プロセスはファイル~にアクセスできません。」 が発生する。 ■ 対処方法 * FileShare.ReadWriteを使…

【C#】【Excel】Excelファイルを扱う ~ 入門編 ~

■ 準備 ソリューションエクスプローラの「参照設定」からExcelを追加する必要がある。 http://hwada.hatenablog.com/entry/20110530/1306719910 では、『「COM」タブのMicrosoft Excel 14.0 Object Library』ではなく 『「.NET」タブのMicrosoft.Office.Inte…

【C#】Officeのバージョンを取得する

■ きっかけ http://blogs.yahoo.co.jp/dk521123/29462017.html より 「最大行数は、Excelのバージョンにより異なる」など バージョンによって動作を変えることも起こりえるので調べた。 ■ サンプル Officeバージョン取得処理 using System.Reflection; publi…

【C#】【Excel】Excel を出力する際の注意事項

■ Excel を出力する際の注意事項 【1】 Excelバージョンに気をつける 【2】 最大行数がある 【1】Excelバージョンに気をつける * Excelバージョンに依存しないために、遅延バインディングを利用する(らしい) 参考文献 http://d.hatena.ne.jp/zecl/2008012…

【C#】【XML】XML Serializeで、xmlnsなどの余計なタグを削除する

■ サンプル Person.cs XML Serializeを行う対象クラス [Serializable()] public class Person { public Person() { this.Company = new Company(); } public int id; public string Name { get; set; } public int Age { get; set; } [XmlIgnoreAttribute] /…

【C#】【XML】C# でXMLシリアライズ・デシリアライズ ~ XmlSerializerクラス ~

■ はじめに C# でXMLシリアライズ・デシリアライズを XmlSerializerクラスを使って行う 後日談 * .NET3.0以上であれば、DataContractSerializerクラスを使った方がいい => 詳細は、以下の関連記事を参照のこと。 https://dk521123.hatenablog.com/entry/3797…

【C#】CSVファイルを作成する

■ 仕様 * 文字コード「UTF8(BOMあり)」 * 区切り文字「,」 * データを「"」で囲う ■ サンプル using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Windows.Forms; namespace WindowsFormsApp1 { public par…

【C#】ごっそりTextファイルにデータ入出力する ~ ReadAllText / WriteAllText ~

■ ファイルの読み書き * File.ReadAllText()又は、File.WriteAllText() を使用する * オープンやクローズを意識することなく、ファイルを簡単に扱える ■ ファイルの読み * ReadAllText() サンプル string FileName = openFileDialog1.FileName; string DataT…

【C#】ファイルの読み書き ~ StreamWriter / StreamReader ~

■ ファイルの書き込み 既存のファイルに追加書込 * StreamWriter() の第2引数に、trueを設定 サンプル ログファイル用クラス作成 #region ログファイル用クラス public class Log { /// <summary> /// ログファイルの書き込み用ストリーム /// </summary> private StreamWriter …

【C#】C#でZIPに圧縮・解凍を扱うには ~ サンプルコード編 ~

■ はじめに C#でZIP圧縮・解凍をするサンプルプログラムを書く * ZIPに関する記述は、以下を参照のこと https://blogs.yahoo.co.jp/dk521123/20103286.html * 以下は、かなり参考になったサイト http://journal.mycom.co.jp/articles/2009/08/21/DotNetZip/0…

【C#】C#でZIPに圧縮・解凍を扱うには ~ 入門編 ~

■ はじめに * 結論から言えば、案3がいいと思う ■ 案1:J#を使用して行う http://dobon.net/vb/dotnet/links/createzipfile.html http://homepage2.nifty.com/nonnon/SoftSample/CS.NET/SampleJZip.html などに記載されている方法 欠点 * J#はVisual Studio …

【C#】【Excel】 Open XML SDK

■ Excelに関するメモ * Office2007からOffice Open XMLという文章フォーマットを採用 ■ Excelのオブジェクト構成 Applicationオブジェクト | +-- Workbookオブジェクト | +-- Worksheetsオブジェクト ■ 環境設定 [1] Open XML SDK (OpenXMLSDKv2.msi)をダ…

【C#】バイナリファイル の扱い

■ バイナリ を扱うメソッド バイナリファイル の扱い * FileStreamクラスを利用する 例 var buffer = new byte[fileStream.Length]; fileStream.Read(buffer, 0, buffer.Length); https://docs.microsoft.com/ja-jp/dotnet/api/system.io.filestream.read?vi…

【C#】【Crystal Reports】デザインに関して

■ テキストオブジェクトについて 文字列を可変で表示 (1)対象の「テキストオブジェクト」を右クリックし「オブジェクトの書式設定」を選択 (2)「書式エディタ」ダイアログの「共通」タブにおいて、「複数行に出力」にチェックを付ける ■ 改ページについて 同…

【C#】【Crystal Reports】サブレポート

■ サブレポートを修正したら... * メインのレポートの呼び出し部分を右クリックし、「サブレポートの再インポート」を選択する ■ 再インポートをデフォルトで行いたい場合 (1) 対象のクリスタルレポートを選択する (2) Visual Studio の [Crystal Reports]-[…

【C#】【Crystal Reports】グループ化

■ グループ化について * 以下のようなテーブルがあり、idについてグループ化した場合、 「tomato, egg plant, cucumber」、「pork, beef」、「rice」となる 例 id | productName ---+------------- 01 | tomato 01 | egg plant 01 | cucumber 02 | pork 02 |…