Excel出力時の線の種類について

1,008 views
Skip to first unread message

araod...@gmail.com

unread,
Feb 14, 2018, 7:31:32 AM2/14/18
to RapidReportサポート QAフォーラム
Excelに出力する際に線の種類について教えてください。
Excelには線の種類が13種類ありますが、それぞれにマッピングさせる定義方法ありますでしょうか。
例えば、細い点線にすることはできますか?

RapidReport

unread,
Feb 14, 2018, 7:55:07 PM2/14/18
to RapidReportサポート QAフォーラム
伊藤です。

現状では、細い点線にマッピングさせることはできません。
※細い点線は印刷すると単に細い線のように見えてしまうので、利用せずにいました。

線スタイルの設定は、具体的には以下のコードで行っています。

            Dim lw As Single = reportDesign.DefaultLineWidth
            If Not design.IsNull("line_width") Then
                lw = design.Get("line_width")
            End If
            If lw = 0 Then
                Return Nothing
            End If
            Dim ret As New BorderStyle
            If design.Get("doublet") Then
                ret.LineStyle = ELineStyle.DOUBLE
            Else
                Dim ls As String = "solid"
                If Not design.IsNull("line_style") Then
                    ls = design.Get("line_style")
                End If

                If ls = "dot" Then
                    If lw >= 2.0F Then
                        ret.LineStyle = ELineStyle.MEDIUM_DOT
                    Else
                        ret.LineStyle = ELineStyle.DOT
                    End If
                ElseIf ls = "dash" Then
                    If lw >= 2.0F Then
                        ret.LineStyle = ELineStyle.MEDIUM_DASH
                    Else
                        ret.LineStyle = ELineStyle.DASH
                    End If
                ElseIf ls = "dashdot" Then
                    If lw >= 2.0F Then
                        ret.LineStyle = ELineStyle.MEDIUM_DASHDOT
                    Else
                        ret.LineStyle = ELineStyle.DASHDOT
                    End If
                Else
                    If lw >= 3.0F Then
                        ret.LineStyle = ELineStyle.THICK
                    ElseIf lw >= 2.0F Then
                        ret.LineStyle = ELineStyle.MEDIUM
                    Else
                        ret.LineStyle = ELineStyle.THIN
                    End If
                End If
            End If

さらに以下のコードで、Excel (というかNPOI) 上のセルのボーダースタイルにマッピングしています。

            Select Case ls
                Case BorderStyle.ELineStyle.THIN
                    Return NPOI.SS.UserModel.BorderStyle.THIN
                Case BorderStyle.ELineStyle.THICK
                    Return NPOI.SS.UserModel.BorderStyle.THICK
                Case BorderStyle.ELineStyle.MEDIUM
                    Return NPOI.SS.UserModel.BorderStyle.MEDIUM
                Case BorderStyle.ELineStyle.DOT
                    Return NPOI.SS.UserModel.BorderStyle.DOTTED ' これは「細い点線」にはなりません。
                Case BorderStyle.ELineStyle.DASH
                    Return NPOI.SS.UserModel.BorderStyle.DASHED
                Case BorderStyle.ELineStyle.DASHDOT
                    Return NPOI.SS.UserModel.BorderStyle.DashDot
                Case BorderStyle.ELineStyle.DOUBLE
                    Return NPOI.SS.UserModel.BorderStyle.DOUBLE
                Case BorderStyle.ELineStyle.MEDIUM_DOT
                    Return NPOI.SS.UserModel.BorderStyle.MediumDashed  ' MediumDot という設定値は用意されていないので、代わりに。
                Case BorderStyle.ELineStyle.MEDIUM_DASH
                    Return NPOI.SS.UserModel.BorderStyle.MediumDashed
                Case BorderStyle.ELineStyle.MEDIUM_DASHDOT
                    Return NPOI.SS.UserModel.BorderStyle.MediumDashDot
            End Select

細い点線を表示するには、NPOI.SS.UserModel.BorderStyle.Hair という値を利用する必要がありますが、
これにはXlsxRenderer自体に修正を加える必要があります。

Excel上での線スタイルをデザイナから直接指定できる機能、というのが追加されればよろしいでしょうか?







araod...@gmail.com

unread,
Feb 14, 2018, 10:44:17 PM2/14/18
to RapidReportサポート QAフォーラム
詳細なご説明ありがとうございます。
現状のマッピング状態について理解しました。

「Excel書式」のような形で枠線スタイルが指定ができると助かります。


RapidReport

unread,
Feb 15, 2018, 2:44:19 AM2/15/18
to RapidReportサポート QAフォーラム
伊藤です。

では、次のバージョンで対応しますので、しばらく時間を下さい。

RapidReport

unread,
Feb 26, 2018, 6:55:59 PM2/26/18
to RapidReportサポート QAフォーラム
伊藤です。

取り急ぎ、「Excel線スタイル」プロパティを追加した版を、4.35.1として公開します。
以下の選択肢から、Excel出力時の線スタイルを直接指定できます。



ダウンロード後、アーカイブを解凍して該当のファイルを上書きすれば、この機能を利用できるようになります。

正式な次バージョンの4.36には、この内容が取り込まれる予定です。

araod...@gmail.com

unread,
Feb 27, 2018, 3:08:07 AM2/27/18
to RapidReportサポート QAフォーラム
ご対応ありがとうございます。
ご記載のとおり罫線が変わることを確認いたしました。
Reply all
Reply to author
Forward
0 new messages