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

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

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

C#でExcelを扱う際に文字単位指定をする方法について

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■91184 / inTopicNo.1)  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#を使っています。
某質問サイトに同じようなトピックがあったのですが参考リンク先がどうやら間違っているようで。。。
どなたかご存知の方いらっしゃいましたらお願いいたします。
引用返信 編集キー/
■91188 / inTopicNo.2)  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で開く時に文句を言われるようになってしまった。
引用返信 編集キー/
■91218 / inTopicNo.3)  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の指定の方法にこのような方法があったのは知りませんでした。
おかげでさらに知識を広げるきっかけにもなりました。とても感謝します!
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ