VB.net(VS2013)から帳票のEXCEL出力を行っています。
DBから作業開始時刻と終了時刻を別のセルに出力しているのですが、そのどちらかが出力した際に別のセルに”~”を出力し、出力されるデータに作業時刻が存在しない場合は”~”を出力しないようにしてほしいと言われました。
申し訳ないのですが、どのようにすれば解決できるでしょうか。回答をお待ちしています
※追記※
今の内容としては
まず入力するためのセルや書式のレイアウトなどを済ませたほとんど空白のExcelを作成しています。
VB.NET
1
Private Const INT_ROW_SAGYO As Integer = 9 '[ 作業 ] Private Const INT_COL_SAGYO_TIME_FR As Integer = 21 '[ 作業時間(開始) ] Private Const INT_COL_SAGYO_TIME_TILDE As Integer = 25 '[ 作業時間(~) ] Private Const INT_COL_SAGYO_TIME_TO As Integer = 26 '[ 作業時間(終了) ]
そのExcelのセルの表示したい場所を指定し、 改頁やらのデータ処理のコードを挟んで、 ```VB.NET Private Function ClearHeaderDetail(ByVal sheet As ExcelWorksheet) As Boolean Try sheet.SetValue(INT_ROW_SAGYO, INT_COL_SAGYO_TIME_FR, Nothing) sheet.SetValue(INT_ROW_SAGYO, INT_COL_SAGYO_TIME_TILDE, Nothing) sheet.SetValue(INT_ROW_SAGYO, INT_COL_SAGYO_TIME_TO, Nothing)
改頁する際に残っているセルのデータをクリアするコードを挟んで、
VB.NET
1 Private Function SetDataHeaderDetail(ByVal sheet As ExcelWorksheet, ByRef dtDetail As DataTable, ByRef intRow As Integer) As Boolean 2 'クリア 3 Me.ClearHeaderDetail(sheet) 4 5 Try 6 sheet.SetValue(INT_ROW_SAGYO, INT_COL_SAGYO_TIME_FR, gclRep.ConvTimeStrToTimeKnj(dtDetail.Rows(intRow).Item(ITM_DNM_SGYSTJKN).ToString)) 7 sheet.SetValue(INT_ROW_SAGYO, INT_COL_SAGYO_TIME_TO, gclRep.ConvTimeStrToTimeKnj(dtDetail.Rows(intRow).Item(ITM_DNM_SGYEDJKN).ToString))
DBから引っ張ってきたデータを貼り付けています。
同じようにセルの場所を指定、セルのクリア処理を挟んで、DBを介さずにどちらかが出力された際に”~”が表示されるようにしたいです。
セルの場所設定やクリア処理はわかりますが、セット時のコードがいまいち判りません。
回答2件
あなたの回答
tips
プレビュー