久々の投稿ですねw
親父(80歳)のネタでも。
まず、本年正月に孫(親父からするとひ孫)が生まれまして。
それもなんだかんだと大騒ぎだったのですがw
ひと段落して、妻とドライブ中に携帯から着信。
出てみると眼科病院から。
親父が白内障の手術を受けるから説明を聞きに来てと。
全く聞いていない話w
親父一人で行って話をしてたみたい。
で、親族にもというわけで電話が。
前もって言ってほしかったなぁ・・・
数日後、店の業態変更に合わせ整理等を親父とやっていたわけですが。
親父が寝床(別棟なのですが)から出てこない。
昼過ぎに『腹が痛いから、病院に連れて行け』と。
病院に行くと緊急入院。
膵臓炎らしい。かなり進行。年齢からも覚悟が必要・・・
もうね。真っ青。親族に電話などしてオイラ一人テンパってました。
最初に行った病院では対応できないから別の総合病院に。
なんとか危機を持ち堪えて2週間程度で退院。
もう別棟で気ままに生活してるのは辞めてもらいまして
今は完全に同居してます。
ホント、今年の前半はいろんな事が重なりました。
次女も嫁いで行きましたし。
IT技術関連は.NETネタが主流のカキコになると思われます^_^;
まあヘッポコなので嘘の情報がまぎれているかも知れません。
ソースの流用はご自由に。ただし責任は取りません。
肥大型心筋症の為ICDを埋め込んでます。
諸々の雑談、巡った神社もUP
更新日付
最新投稿:大浦神社
投稿日:2026年4月13日
追記:吉備津彦神社
追記日:2026年5月7日
火縄銃演武
投稿日:2026年4月13日
追記:吉備津彦神社
追記日:2026年5月7日
火縄銃演武
2020年7月6日月曜日
2019年6月18日火曜日
コーディング基準
雑談でコーディング基準について。
PG開発会社毎でそれぞれコーディング基準があって、
まったく異なる(時には真逆)の基準だったりする。
オイラ的にはVB.NETの場合
IF A=B THEN C=1
ってのはちょっと気持ち悪くて
IF A=B THEN
C=1
END IF
としたい所なんだけど、1行に書かないとNGになる基準もあるらしい。
確かに行数は増えるけどさ、修正しやすは後者だと思うんだよね。
まぁ昔のBASICだともっと省略してたけどw
まぁ元受けの基準に従うしかないのだけど、ちょっと愚痴ってみたw
PG開発会社毎でそれぞれコーディング基準があって、
まったく異なる(時には真逆)の基準だったりする。
オイラ的にはVB.NETの場合
IF A=B THEN C=1
ってのはちょっと気持ち悪くて
IF A=B THEN
C=1
END IF
としたい所なんだけど、1行に書かないとNGになる基準もあるらしい。
確かに行数は増えるけどさ、修正しやすは後者だと思うんだよね。
まぁ昔のBASICだともっと省略してたけどw
まぁ元受けの基準に従うしかないのだけど、ちょっと愚痴ってみたw
2019年2月13日水曜日
C#からEXCEL読込(一括)
もう1年以上更新してなかったw
久しぶりに小ネタを。
アプリからEXCELファイルを読み込むってのは業務アプリ開発で
ありがちな依頼だったりする。
で、オイラもそんなC#開発依頼を受けて。
まず、参照設定にMicrosoft.Office.Interop.Excelを追加
(サードパーティ使用不可だからw)
以下、データ取得のソース
-----------------------------------------------------------------------------------------
// データ格納エリア
object[,] RangeDatas = null;
Microsoft.Office.Interop.Excel.Application Exl = null;
Microsoft.Office.Interop.Excel.Workbooks xlsBooks = null;
Microsoft.Office.Interop.Excel.Workbook xlsBook = null;
Microsoft.Office.Interop.Excel.Sheets xlsSheets = null;
Microsoft.Office.Interop.Excel.Worksheet xlsSheet = null;
Microsoft.Office.Interop.Excel.Range xlsRange = null;
Microsoft.Office.Interop.Excel.Workbooks xlsBooks = null;
Microsoft.Office.Interop.Excel.Workbook xlsBook = null;
Microsoft.Office.Interop.Excel.Sheets xlsSheets = null;
Microsoft.Office.Interop.Excel.Worksheet xlsSheet = null;
Microsoft.Office.Interop.Excel.Range xlsRange = null;
try
{
// EXCEL起動
Exl = new Microsoft.Office.Interop.Excel.Application
{
DisplayAlerts = false
};
try
{
// Books指定
xlsBooks = Exl.Workbooks;
try
{
// Book読込
xlsBook = xlsBooks.Open(FILENAME);
try
{
//EXCEL Sheets
xlsSheets = xlsBook.Sheets;
try
{
//EXCEL Sheet(1シート目)
xlsSheet = xlsSheets[1] as Microsoft.Office.Interop.Excel.Worksheet;
try
{
//使用セル
xlsRange = xlsSheet.UsedRange;
RangeDatas = xlsRange.Value;
}
catch { }
finally
{
if (xlsRange != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsRange);
}
xlsRange = null;
}
}
catch { }
finally
{
if (xlsSheet != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsSheet);
}
xlsSheet = null;
}
}
catch { }
finally
{
if (xlsSheets != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsSheets);
}
xlsSheets = null;
}
}
catch { }
finally
{
if (xlsBook != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsBook);
}
xlsBook = null;
}
}
catch { }
finally
{
if (xlsBooks != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsBooks);
}
xlsBooks = null;
}
}
catch { }
finally
{
if (Exl != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(Exl);
}
Exl = null;
}
{
// EXCEL起動
Exl = new Microsoft.Office.Interop.Excel.Application
{
DisplayAlerts = false
};
try
{
// Books指定
xlsBooks = Exl.Workbooks;
try
{
// Book読込
xlsBook = xlsBooks.Open(FILENAME);
try
{
//EXCEL Sheets
xlsSheets = xlsBook.Sheets;
try
{
//EXCEL Sheet(1シート目)
xlsSheet = xlsSheets[1] as Microsoft.Office.Interop.Excel.Worksheet;
try
{
//使用セル
xlsRange = xlsSheet.UsedRange;
RangeDatas = xlsRange.Value;
}
catch { }
finally
{
if (xlsRange != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsRange);
}
xlsRange = null;
}
}
catch { }
finally
{
if (xlsSheet != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsSheet);
}
xlsSheet = null;
}
}
catch { }
finally
{
if (xlsSheets != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsSheets);
}
xlsSheets = null;
}
}
catch { }
finally
{
if (xlsBook != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsBook);
}
xlsBook = null;
}
}
catch { }
finally
{
if (xlsBooks != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsBooks);
}
xlsBooks = null;
}
}
catch { }
finally
{
if (Exl != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(Exl);
}
Exl = null;
}
-----------------------------------------------------------------------------------------
使用したオブジェクトを明示的に開放してやらないと駄目なんで
めんどくさいけど仕方ない。
これでRangeDatasにEXCELセルのデータが入るのだけど・・・・
日付データとかは日付型で入るわけでもない。
EXCELに表示されている値を取り込みたいとなると
ループで各セルを回して.Textを取得する必要があるみたい。
(一括で取得する方法があれば良いけど・・・・)
2017年9月30日土曜日
2016年10月22日土曜日
久しぶりの投稿
いやいや、1年以上投稿してなかったなぁ。
去年末にICDがまた起動(朝、布団の中でドカンと)しまして・・・
また今年末まで運転はお預け。
仕事はぼちぼち。
この秋からSEのお手伝い。
無理を言って出社時間を遅らせてもらってます。
でも、車で行けないのは時間に縛られるのが辛いのと
運転で気分転換できないのもつらいなぁ。
また、技術的なネタも上げようかと思うけど
当分、COBOLでの作業だからねぇwww
COBOL,PL/I,JCLが読める人間なんて
50過ぎ初老のおっさんばっかり。
去年末にICDがまた起動(朝、布団の中でドカンと)しまして・・・
また今年末まで運転はお預け。
仕事はぼちぼち。
この秋からSEのお手伝い。
無理を言って出社時間を遅らせてもらってます。
でも、車で行けないのは時間に縛られるのが辛いのと
運転で気分転換できないのもつらいなぁ。
また、技術的なネタも上げようかと思うけど
当分、COBOLでの作業だからねぇwww
COBOL,PL/I,JCLが読める人間なんて
50過ぎ初老のおっさんばっかり。
登録:
投稿 (Atom)