<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C#</title><link>http://blogs.wankuma.com/koutarou/category/574.aspx</link><description>C#</description><managingEditor>koutarou</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>koutarou</dc:creator><title>Wordを画像に変換するツール Ver0.2.1 公開</title><link>http://blogs.wankuma.com/koutarou/archive/2009/02/21/168541.aspx</link><pubDate>Sat, 21 Feb 2009 20:27:00 GMT</pubDate><guid>http://blogs.wankuma.com/koutarou/archive/2009/02/21/168541.aspx</guid><wfw:comment>http://blogs.wankuma.com/koutarou/comments/168541.aspx</wfw:comment><comments>http://blogs.wankuma.com/koutarou/archive/2009/02/21/168541.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.wankuma.com/koutarou/comments/commentRss/168541.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/koutarou/services/trackbacks/168541.aspx</trackback:ping><description>&lt;p&gt;&lt;br&gt;
今回からソース添付したよー&lt;br&gt;
色々バグ解消&lt;br&gt;
・WordとMODIの参照設定をはずして、遅延バインディングで実装したので、Interop.xxx.dllを配布しなくても良くなった。&lt;br&gt;
・MODIのドライバプロパティを呼び出せる様にした。&lt;br&gt;
・色々と使いやすくした。&lt;br&gt;
&lt;br&gt;
まだちょっと使いにくい所あるけど、ある程度使えるようになって来た？&lt;br&gt;
誰も使ってない？ｗ&lt;br&gt;
&lt;br&gt;
ソースの突っ込み入れて下さい。&lt;br&gt;
&lt;br&gt;
&lt;a href="http://cid-581165512b544437.skydrive.live.com/self.aspx/%e5%85%ac%e9%96%8b/WordConv/WordConv[0.2.1.0].zip"&gt;ダウンロード Ver 0.2.1.0&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/koutarou/aggbug/168541.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>koutarou</dc:creator><title>Wordを画像に変換するツール（β）</title><link>http://blogs.wankuma.com/koutarou/archive/2009/02/09/167802.aspx</link><pubDate>Mon, 09 Feb 2009 18:02:00 GMT</pubDate><guid>http://blogs.wankuma.com/koutarou/archive/2009/02/09/167802.aspx</guid><wfw:comment>http://blogs.wankuma.com/koutarou/comments/167802.aspx</wfw:comment><comments>http://blogs.wankuma.com/koutarou/archive/2009/02/09/167802.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/koutarou/comments/commentRss/167802.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/koutarou/services/trackbacks/167802.aspx</trackback:ping><description>&lt;p&gt;
先週末に細かい調整をして画面を作って見ました。&lt;br&gt;
&lt;br&gt;
詳細は以下参照&lt;br&gt;
&lt;a href=http://d.hatena.ne.jp/kootaro/20090209"&gt;はてなDiary&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Office2003以上は必須だと思います。
&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/koutarou/aggbug/167802.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>koutarou</dc:creator><title>C#でWordを画像(jpg)に変換する手順（仮）</title><link>http://blogs.wankuma.com/koutarou/archive/2009/02/06/167600.aspx</link><pubDate>Fri, 06 Feb 2009 15:35:00 GMT</pubDate><guid>http://blogs.wankuma.com/koutarou/archive/2009/02/06/167600.aspx</guid><wfw:comment>http://blogs.wankuma.com/koutarou/comments/167600.aspx</wfw:comment><comments>http://blogs.wankuma.com/koutarou/archive/2009/02/06/167600.aspx#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://blogs.wankuma.com/koutarou/comments/commentRss/167600.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/koutarou/services/trackbacks/167600.aspx</trackback:ping><description>Googleで調べても、まとまった情報がなかったので、メモしときます。&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
1.Microsoft.Office.Interop.Wordを参照設定し、OpenメソッドでDocファイルを開く。&lt;BR&gt;
&lt;BR&gt;
2.開いたDocのPrintOutメソッドを呼び出してイメージファイル出力。&lt;BR&gt;
出力先：Microsoft Office Document Image Writer　保存形式：tif&lt;BR&gt;
ただし、こまかい出力の設定が、まだ分かりません。今の所は、前回の出力設定で出してます。&lt;BR&gt;
&lt;BR&gt;
3.System.Drawing.Imaging.FrameDimensionを使って画像を抜き出して、単体画像ファイルとして保存。&lt;BR&gt;
&lt;BR&gt;
これでは、2.の所のTiff出力がモノクロなので、最終の個別画像もモノクロです。&lt;BR&gt;
当然、カラフルなWord文書内もモノクロになっちゃいます...&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
んで、ちょっと方式を変えて。&lt;BR&gt;
&lt;BR&gt;
1～2の手順は、同じです。&lt;BR&gt;
ただし、2の保存形式をMDI(Microsoft Document Imaging)にします。&lt;BR&gt;
すると、カラーで出力されるようになります。&lt;BR&gt;
&lt;BR&gt;
次に、出力したMDIファイルを開く為に、MODI(Microsoft Office Document Imaging 12.0 Type Library)の参照設定する。&lt;BR&gt;
&lt;BR&gt;
1.MODI.Document.Createで、MDIファイルを開く。&lt;BR&gt;
&lt;BR&gt;
2.MODI.Document.SaveAsで、Tiff形式で出力。&lt;BR&gt;
&lt;BR&gt;
3.あとは、前の3と同様にTiffに含まれている画像達を抽出して、個別画像ファイルに保存する。&lt;BR&gt;
&lt;BR&gt;
これで、Word文書を1ページずつ画像ファイルに変換できそうです。&lt;BR&gt;
&lt;img src ="http://blogs.wankuma.com/koutarou/aggbug/167600.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>koutarou</dc:creator><title>高速なコンピュータみたい</title><link>http://blogs.wankuma.com/koutarou/archive/2007/01/16/56467.aspx</link><pubDate>Tue, 16 Jan 2007 02:12:00 GMT</pubDate><guid>http://blogs.wankuma.com/koutarou/archive/2007/01/16/56467.aspx</guid><wfw:comment>http://blogs.wankuma.com/koutarou/comments/56467.aspx</wfw:comment><comments>http://blogs.wankuma.com/koutarou/archive/2007/01/16/56467.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.wankuma.com/koutarou/comments/commentRss/56467.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/koutarou/services/trackbacks/56467.aspx</trackback:ping><description>おめでとうございます。&lt;br&gt;
&lt;br&gt;
今年から、新しい業務について、ますます微妙な感じですが、心機一転、初心に戻って。。。&lt;br&gt;
がんばってみましょう。&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
new System.Random()を使用して、ランダムな文字列を２回連続して生成してると、２回とも同じ値になってハマッテしまったので、メモ&lt;br&gt;
&lt;br&gt;
&lt;a href="http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfsystemrandomclassctortopic2.asp"&gt;http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfsystemrandomclassctortopic2.asp&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
どうやらMyPcは、上記リンク先の解説に記述される、高速なコンピュータに該当するらしく、同じ乱数が取れるようです。&lt;br&gt;
&lt;br&gt;
MSDNのサンプルだと、２回は行けるけど、３回.....と違う乱数を発生させれる方法は？&lt;br&gt;
んと、ちと考えよ&lt;br&gt;

&lt;img src ="http://blogs.wankuma.com/koutarou/aggbug/56467.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>koutarou</dc:creator><title>DLLの配置の勘違い</title><link>http://blogs.wankuma.com/koutarou/archive/2006/12/07/48882.aspx</link><pubDate>Thu, 07 Dec 2006 00:23:00 GMT</pubDate><guid>http://blogs.wankuma.com/koutarou/archive/2006/12/07/48882.aspx</guid><wfw:comment>http://blogs.wankuma.com/koutarou/comments/48882.aspx</wfw:comment><comments>http://blogs.wankuma.com/koutarou/archive/2006/12/07/48882.aspx#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://blogs.wankuma.com/koutarou/comments/commentRss/48882.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/koutarou/services/trackbacks/48882.aspx</trackback:ping><description>&lt;P&gt;.NET Framework アプリケーションでは、system32やパスを通したフォルダにDLLを集めても駄目なのね。&lt;BR&gt;知らなかったっす。。。&lt;/P&gt;
&lt;P&gt;&amp;lt;codeBase&amp;gt;や&amp;lt;probing&amp;gt;は、知ってたし使ってた事あったんだけどね。&lt;BR&gt;だけど、今回のは。。。参照する側のexeも多いし、参照される側のdllも多いし。。。（謎ｗ）&lt;BR&gt;かといって、○○○個もGACに入れる事も（汗&lt;/P&gt;
&lt;P&gt;まあ、フラットで配置するしかないのかなー&lt;BR&gt;明日、もうちょっと勉強がてら調べてみようと&lt;/P&gt;
&lt;P&gt;（とりあえず開始URL）&lt;/P&gt;
&lt;P&gt;ランタイムがアセンブリを検索する方法&lt;BR&gt;&lt;A href="http://msdn2.microsoft.com/ja-jp/library/yx7xezcf(VS.80).aspx"&gt;http://msdn2.microsoft.com/ja-jp/library/yx7xezcf(VS.80).aspx&lt;/A&gt;&lt;BR&gt;コードベースまたはプローブによるアセンブリの検索&lt;BR&gt;&lt;A href="http://msdn2.microsoft.com/ja-jp/library/15hyw9x3(VS.80).aspx"&gt;http://msdn2.microsoft.com/ja-jp/library/15hyw9x3(VS.80).aspx&lt;/A&gt;&lt;BR&gt;@it　第3回　アセンブリのロード&lt;BR&gt;&lt;STRONG&gt;&lt;A href="http://www.atmarkit.co.jp/fdotnet/technology/idnfw11_03/idnfw11_03_01.html"&gt;http://www.atmarkit.co.jp/fdotnet/technology/idnfw11_03/idnfw11_03_01.html&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/koutarou/aggbug/48882.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>koutarou</dc:creator><title>DataGridViewのセルを編集時に別フォーマットにする</title><link>http://blogs.wankuma.com/koutarou/archive/2006/09/01/37481.aspx</link><pubDate>Fri, 01 Sep 2006 16:36:00 GMT</pubDate><guid>http://blogs.wankuma.com/koutarou/archive/2006/09/01/37481.aspx</guid><wfw:comment>http://blogs.wankuma.com/koutarou/comments/37481.aspx</wfw:comment><comments>http://blogs.wankuma.com/koutarou/archive/2006/09/01/37481.aspx#Feedback</comments><slash:comments>371</slash:comments><wfw:commentRss>http://blogs.wankuma.com/koutarou/comments/commentRss/37481.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/koutarou/services/trackbacks/37481.aspx</trackback:ping><description>＜概要＞&lt;br&gt;
DataGridViewのあるカラムに、カンマ付き数値を表示。&lt;br&gt;
編集のタイミングでカンマを取って編集したい。&lt;br&gt;
&lt;br&gt;
＜例＞&lt;br&gt;
private void dgvList_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)&lt;br&gt;
{&lt;br&gt;&lt;ul&gt;
if (e.ColumnIndex == 8)&lt;br&gt;
{&lt;br&gt;&lt;ul&gt;
//編集中じゃなきゃ、カンマ付きにフォーマット&lt;br&gt;
if (dgvList[e.ColumnIndex, e.RowIndex].IsInEditMode == false)&lt;br&gt;
{&lt;br&gt;&lt;ul&gt;
//e.Valueのチェックとかいるかもね&lt;br&gt;
e.Value = e.Value.ToString("###,##0");&lt;br&gt;
}&lt;/ul&gt;
else&lt;br&gt;
{&lt;br&gt;&lt;ul&gt;
//処理無し&lt;/ul&gt;
}&lt;/ul&gt;
}&lt;/ul&gt;
}
&lt;br&gt;
&lt;br&gt;
private void dgvList_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)&lt;br&gt;
{&lt;br&gt;
	if (e.ColumnIndex == 8)&lt;br&gt;
	{&lt;br&gt;
		//フォーマットの仕方は、ご自由に&lt;br&gt;
		dgvList[e.ColumnIndex, e.RowIndex].Value = dgvList[e.ColumnIndex, e.RowIndex].Value.ToString().Replace(",", string.Empty);&lt;br&gt;
	}&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
＜例　補足＞&lt;br&gt;
e.ColumnIndex == 8の列には、数値系型のデータがバインドされてる。&lt;br&gt;
実装時には、DataGridViewTextBoxColumn等のカラムオブジェクト.Indexがスマートかな？&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;ポイント&gt;&lt;br&gt;
・CellFormattingイベント内で、IsInEditModeによって、編集中かどうかを判断。（カンマをつける）&lt;br&gt;
・CellBeginEditで、イベント内で編集用フォーマットに切り替える。（カンマを取る）&lt;br&gt;
・CellBeginEditでカンマ取っても、Valueにセットする行為で、CellFormattingイベントが発生するのでIsInEditModeでの判断を入れないと無駄（取った瞬間、カンマ付きになるので永遠にカンマ付き）&lt;br&gt;
&lt;br&gt;
＜まとめ＞&lt;br&gt;
表示フォーマットと編集フォーマットが違う場合には、上記でいけそうだ。&lt;br&gt;
注意するのは、「単純に表示時にカンマつけてよ！」って仕様書に書いてる時は、CellFormattingでしちゃだめです。&lt;br&gt;
理由は、重いから。昨日のエントリ見て下さい。&lt;br&gt;
http://blogs.wankuma.com/koutarou/archive/2006/08/31/37323.aspx#37324&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
＜今日の感想＞&lt;br&gt;
DataGridViewは、イベント多すぎで手ごわいな。。。&lt;br&gt;
ヘルプとかだけじゃ掴みきれないし、Google様もあまり教えてくれない。&lt;br&gt;&lt;img src ="http://blogs.wankuma.com/koutarou/aggbug/37481.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>koutarou</dc:creator><title>DataGridViewに数値を日付形式フォーマットみたいな</title><link>http://blogs.wankuma.com/koutarou/archive/2006/08/31/37323.aspx</link><pubDate>Thu, 31 Aug 2006 14:38:00 GMT</pubDate><guid>http://blogs.wankuma.com/koutarou/archive/2006/08/31/37323.aspx</guid><wfw:comment>http://blogs.wankuma.com/koutarou/comments/37323.aspx</wfw:comment><comments>http://blogs.wankuma.com/koutarou/archive/2006/08/31/37323.aspx#Feedback</comments><slash:comments>601</slash:comments><wfw:commentRss>http://blogs.wankuma.com/koutarou/comments/commentRss/37323.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/koutarou/services/trackbacks/37323.aspx</trackback:ping><description>＜概要＞&lt;br&gt;
DataGridViewへDataTableをBindさせ数値型データ（８桁）をスラッシュ付き(yyyy/MM/dd)形式で表示&lt;br&gt;
&lt;br&gt;
＜経緯＞&lt;br&gt;
今回の案件の全部日付カラムは、整数８桁だ。（年月６桁）&lt;br&gt;
（その設計は、ＤＢ設計担当者に聞いてくれ。オラしらね）&lt;br&gt;
んでもって、それをDataGridViewに表示時にスラッシュ付きフォーマットに変換して表示してみた。&lt;br&gt;
（プロパティデザイナで設定するDefaultCellStyleのFormatをDに設定しても、数値型だと変換出来ないので）&lt;br&gt;
&lt;br&gt;
＜例＞&lt;br&gt;
/// グリッドセル　フォーマット設定&lt;br&gt;
private void dgvList_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)&lt;br&gt;
{&lt;br&gt;
&lt;ul&gt;
    //データソース　８桁の整数値の日付の表示をスラッシュ付きに変換&lt;br&gt;
    //細かい判定や例外処理は、各自でよろしく&lt;br&gt;
    if (e.ColumnIndex == YMD.Index)&lt;br&gt;
    {&lt;br&gt;
&lt;ul&gt;
        //適当に変換方法変えてね&lt;br&gt;
        e.Value = (e.Value).ToString().Insert(4,"/").Insert(7,"/");&lt;br&gt;
&lt;/ul&gt;
    }&lt;br&gt;
&lt;/ul&gt;
}&lt;br&gt;
&lt;br&gt;
SQLで形式って手もあるけど、当然そうなるとそのDataGridView専属のSQLになるので、これでやってみた。&lt;br&gt;
&lt;br&gt;
＜難点＞&lt;br&gt;
ただ、CellFormattingイベント&lt;br&gt;
&lt;ul&gt;&lt;i&gt;
	**MSDN抜粋**&lt;br&gt;
	CellFormatting イベントはセルが塗りつぶされるたびに発生するため、&lt;br&gt;
	このイベントを処理するときは時間のかかる処理を回避する必要があります。&lt;br&gt;
	このイベントは、セルの FormattedValue が取得された場合や、&lt;br&gt;
	GetFormattedValue メソッドが呼び出された場合にも発生します。&lt;br&gt;
&lt;/i&gt;&lt;/ul&gt;
との事なんで、しょっちゅう発生します。&lt;br&gt;
非表示から、表示に切り替えたりしただけで動いてました。&lt;br&gt;
それゆえ、当然、表示データ量が多かったり、フォーマットする列が多かったり、&lt;br&gt;
フォーマット処理自体が重いと見苦しくなる可能性あります。&lt;br&gt;
&lt;br&gt;
なんか、別に良い方法があったら教えて下さい。&lt;br&gt;
（とりあえず、いまさら日付型に変更なんて出来ないから今回はこれで！妥協orz）&lt;br&gt;


&lt;img src ="http://blogs.wankuma.com/koutarou/aggbug/37323.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>