はじめに
エクセル不要で無料のエクセルライブラリ「SpreadsheetLight」を使って、エクセルに罫線を設定する方法を解説します。種類と色と範囲の指定だけなので簡単に設定できます。
- 環境
- 実行結果
- 全体コード
- コードのポイント
SpreadsheetLightって何?という方は、以下の記事から先に参照してください。
環境
この記事は以下の環境で作成と動作確認を行っています。
環境 | バージョンなど | 備考 |
VisualStudio | 2019 Community | 2017でも使用できます |
.NET | 4.7.2 | |
プロジェクト | コンソールアプリケーション(.NET Framework) | |
SpreadsheetLight | 3.5.0 |
実行結果
後述するコードを実行すると、以下のような罫線が設定されたエクセルファイルが出力できます。
全体ソース
罫線が設定されたエクセルファイルを出力するコードです。上の画像で示したエクセルが、実行ファイルと同じ場所に出力されます。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// SpreadsheetLight 関連で必要です
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Spreadsheet;
using SpreadsheetLight;
namespace ConsoleAppSSheetLight_RuledLine
{
class Program
{
static void Main(string[] args)
{
SLDocument sl = new SLDocument();
// 項目名称を入力します
sl.SetCellValue("A1", "氏名");
sl.SetCellValue("B1", "スコアA");
sl.SetCellValue("C1", "スコアB");
sl.SetCellValue("D1", "スコアC");
sl.SetCellValue("E1", "スコア合計");
// 氏名の内容を入力します
sl.SetCellValue("A2", "田中");
sl.SetCellValue("A3", "鈴木");
sl.SetCellValue("A4", "山田");
// 各人のスコアを入力します
for (int i = 2; i < 2 + 3; i++) { sl.SetCellValue(2, i, i * 10); }
for (int i = 2; i < 2 + 3; i++) { sl.SetCellValue(3, i, i * 20); }
for (int i = 2; i < 2 + 3; i++) { sl.SetCellValue(4, i, i * 30); }
// 各人の合計のため、SUM関数を入力します。
// ライブラリの機能を使って、行・列の番号から、A1:A5 のような「範囲の文字列」に変換します
string range1 = SLConvert.ToCellRange(2, 2, 2, 4);
string range2 = SLConvert.ToCellRange(3, 2, 3, 4);
string range3 = SLConvert.ToCellRange(4, 2, 4, 4);
// SUM関数を入力します
sl.SetCellValue(2, 5, "=SUM(" + range1 + ")");
sl.SetCellValue(3, 5, "=SUM(" + range2 + ")");
sl.SetCellValue(4, 5, "=SUM(" + range3 + ")");
// 罫線用にスタイルを作成します。
SLStyle style1 = sl.CreateStyle();
//
// 注意
// 罫線の種類を必ず選択する必要があります。
// 色の設定のみだと罫線は表示されないので、ご注意下さい。
//
// 罫線の形式を(点線・太線など)を設定します
style1.Border.TopBorder.BorderStyle = BorderStyleValues.Thin;
style1.Border.LeftBorder.BorderStyle = BorderStyleValues.Thin;
style1.Border.RightBorder.BorderStyle = BorderStyleValues.Thin;
style1.Border.BottomBorder.BorderStyle = BorderStyleValues.Thin;
/*
* 罫線の種類です( 太字系の形式は省略)
*
// 実線(細い)
style1.Border.TopBorder.BorderStyle = BorderStyleValues.Thin;
// 一点鎖線
style1.Border.TopBorder.BorderStyle = BorderStyleValues.DashDot;
// 点線
style1.Border.TopBorder.BorderStyle = BorderStyleValues.Dotted;
// 太線
style1.Border.TopBorder.BorderStyle = BorderStyleValues.Medium;
// 二重鎖線
style1.Border.TopBorder.BorderStyle = BorderStyleValues.DashDotDot;
// 破線
style1.Border.TopBorder.BorderStyle = BorderStyleValues.Dashed;
// 二本線
style1.Border.TopBorder.BorderStyle = BorderStyleValues.Double;
// 実線(極細)
style1.Border.TopBorder.BorderStyle = BorderStyleValues.Hair;
// 斜破線
style1.Border.TopBorder.BorderStyle = BorderStyleValues.SlantDashDot;
// 実線(太い)
style1.Border.TopBorder.BorderStyle = BorderStyleValues.Thick;
*/
// 罫線の色を選択します
style1.Border.BottomBorder.Color = System.Drawing.Color.Black;
style1.Border.TopBorder.Color = System.Drawing.Color.Black;
style1.Border.LeftBorder.Color = System.Drawing.Color.Black;
style1.Border.RightBorder.Color = System.Drawing.Color.Black;
// 複数セルにスタイルを適用します。
sl.SetCellStyle(1, 1, 4, 5, style1);
// エクセルファイルを保存します
sl.SaveAs("SSL_TestRuledLine.xlsx");
// 終了待ちです。
Console.WriteLine("End of program");
Console.ReadLine();
}
}
}
コードのポイント
表データの作成
コードの中盤(50行目)までは、表の項目やデータを設定するコードです。
内容については以下の記事を参照してください。
スタイルの作成・罫線の種類と色の設定
罫線など書式設定をするための「SLStyle型のオブジェクト」(スタイル)を生成し、罫線の種類や色を設定していきます。
罫線の設定には、「Top」「buttom」「Right」「Left」があります。今回の例のように、表の全てに罫線を設定するには、上記全てに設定を行ってください。
※罫線の種類は、全体コードでコメントアウトした部分を参考にしてください。
※残念ながら、「囲む」の設定はみつかりませんでした。
罫線の種類は必ず設定してください。色の設定のみだとエクセルに罫線が表示されません。
// 罫線用にスタイルを作成します。
SLStyle style1 = sl.CreateStyle();
// 罫線の形式を(点線・太線など)を設定します
style1.Border.TopBorder.BorderStyle = BorderStyleValues.Thin;
style1.Border.LeftBorder.BorderStyle = BorderStyleValues.Thin;
style1.Border.RightBorder.BorderStyle = BorderStyleValues.Thin;
style1.Border.BottomBorder.BorderStyle = BorderStyleValues.Thin;
// 罫線の形式を(点線・太線など)を設定します
style1.Border.TopBorder.BorderStyle = BorderStyleValues.Thin;
style1.Border.LeftBorder.BorderStyle = BorderStyleValues.Thin;
style1.Border.RightBorder.BorderStyle = BorderStyleValues.Thin;
style1.Border.BottomBorder.BorderStyle = BorderStyleValues.Thin;
罫線の範囲の指定
罫線を引くセルの範囲と、設定済みのスタイルをエクセル(sl) にセットすれば設定は完了です。
セルの範囲は、罫線を設定する「左上セル」と「右下のセル」を指定してください。
// 複数セルにスタイルを適用します。
sl.SetCellStyle(1, 1, 4, 5, style1);
まとめ
エクセル不要で無料のエクセルライブラリ「SpreadsheetLight」を使って、エクセルに罫線を設定する方法を解説しました。参考になればうれしいです。
SpreadsheetLightでは、エクセルにグラフを挿入することも簡単にできます。興味がある方は以下の記事も合わせてご覧ください。
お知らせ
今月号のSoftware Designは「もっとTypeScriptの力を引き出そう」
JavaScriptの拡張言語でしょ?と思っているかたへ、Union型などTypeScriptの持つ秘めたる力を解説する特集となっています。
個人的には第2特集の「Ubuntuの現代的な使い方」がの方が気になりました。より詳しい内容は以下のリンクからご覧ください。
同じ27インチで1.8倍の情報量
Excelで大量のデータを扱うなら、高解像度のディスプレイが絶対おすすめです。WQHD対応モニターなら、同サイズのフルHDと比べて1.8倍の情報量。解像度も高いので目にもやさしいです。30%オフなので私も仕事用に買いました。
質問・要望 大歓迎です
「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。
使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。