C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

C#でExcelを扱う際に文字単位指定をする方法について /しろ (19/06/05(Wed) 20:48) #91184
Re[1]: C#でExcelを扱う際に文字単位指定をする方法について /Hongliang (19/06/05(Wed) 21:31) #91188
  └ Re[2]: C#でExcelを扱う際に文字単位指定をする方法について /しろ (19/06/06(Thu) 12:46) #91218 解決済み


親記事 / ▼[ 91188 ]
■91184 / 親階層)  C#でExcelを扱う際に文字単位指定をする方法について
□投稿者/ しろ (1回)-(2019/06/05(Wed) 20:48:55)

分類:[C#] 

2019/06/05(Wed) 21:16:36 編集(投稿者)
2019/06/05(Wed) 21:16:09 編集(投稿者)

こんばんは。
WPFでエクセルを処理するツールを作成しているのですが、ひとつわからない箇所がありまして質問させていただきます。

主にClosedXMLを使用しExcel処理を行っているのですが、
セル内の文字全体ではなく、セル内の特定の文字にのみスタイルを設定する処理ができずに詰まってしまっています。
例えば「あいうえお」の「うえ」の文字列だけフォントを変えたりサイズや色を変えたりなどといったようにです。

ActiveCell.Characters(Start: 4, Length: 3).Font.Color

こんな感じの書き方で設定できるかとやってみたりしたのですがそもそも文法があっていないようでなかなかうまくいかない状態です。

公式に

.AddText("THIS").SetBold().SetFontColor(XLColor.Red)

このような記述方法もあったのですがデータ入力と同時にというよりもすでにセルに入力したValueに対し処理ができたらと思っています。
言語はC#を使っています。
某質問サイトに同じようなトピックがあったのですが参考リンク先がどうやら間違っているようで。。。
どなたかご存知の方いらっしゃいましたらお願いいたします。
[ □ Tree ] 返信 編集キー/

▲[ 91184 ] / ▼[ 91218 ]
■91188 / 1階層)  Re[1]: C#でExcelを扱う際に文字単位指定をする方法について
□投稿者/ Hongliang (817回)-(2019/06/05(Wed) 21:31:34)
こんな感じですかね。

IXLCell cell = ...; // 適当にセルを取ってくる
IXLRichText rich = cell.RichText;
IXLFormattedText<IXLRichText> text = rich.Substring(index, length);
text.SetColor(XLColor.Red);

// これでSaveしたらLibreOfficeで開く時に文句を言われるようになってしまった。
[ 親 91184 / □ Tree ] 返信 編集キー/

▲[ 91188 ] / 返信無し
■91218 / 2階層)  Re[2]: C#でExcelを扱う際に文字単位指定をする方法について
□投稿者/ しろ (4回)-(2019/06/06(Thu) 12:46:56)
No91188 (Hongliang さん) に返信
> こんな感じですかね。
>
> IXLCell cell = ...; // 適当にセルを取ってくる
> IXLRichText rich = cell.RichText;
> IXLFormattedText<IXLRichText> text = rich.Substring(index, length);
> text.SetColor(XLColor.Red);
>
> // これでSaveしたらLibreOfficeで開く時に文句を言われるようになってしまった。


Hongliangさん
ありがとうございます!完璧です!
以下のコードで指定の箇所に適用できました

IXLCell cell = testSheet.Cell("A1");
IXLRichText rich = cell.RichText;
IXLFormattedText<IXLRichText> text = rich.Substring(0, 30);
text.SetFontColor(XLColor.Red);

Cellの指定の方法にこのような方法があったのは知りませんでした。
おかげでさらに知識を広げるきっかけにもなりました。とても感謝します!
解決済み
[ 親 91184 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -