改訂されたテキストをExcelシートに抽出し、変更された部分をExcelで色分けするサードパーティswのプラグインを作成しました。 各テキストセグメント(=セルの内容)が255文字を超えない限り、これは機能します。うーん、これは時々起こることがあります。Excelのカラーテキスト部分> 255文字
Excelで変更された部分を識別するために、私はそれらを<del>
respで囲みます。 <add>
削除され、追加されたテキストのタグ。それから私は、これらの部品を色(とその周辺のタグを削除)このように:私が行う方法上の任意のまともな例を見つけることができなかったので、
while (((string)cell1.Text).Contains("<del>"))
{
try
{
var pos = ((string) cell1.Text).IndexOf("<del>") + 1;
var pos2 = ((string) cell1.Text).IndexOf("</del>") + 1;
var txt = cell1.Characters[pos, (pos2-pos) + 9].Text;
txt = txt.Replace("<del>", "").Replace("</del>", "");
cell1.Characters[pos, (pos2-pos) + 9].Text = txt;
cell1.Characters[pos, txt.Length-3].Font.Color = -16776961;
}
catch
{
break;
}
}
また、私はそれがはるかに簡単で動作するように見つけるため、相互運用機能を使用して、としていますこれはOpenXMLによる。しかし、Excelにはセルテキストについては限界があることを知っていますので、私は提案をすることができます。
Interopを使用して> 255文字を含むセルに単一の単語を表示する方法はありますか?
すべてが失敗したら、おそらくテーブルでWord文書を作成し、そこで書式を設定してExcel(yukk)にコピー/ペーストする必要があります。この醜さを避けてください。
P .:はい、リビジョンの概要はExcelベースである必要があります。
cell.Textの代わりにcell.Valueを使用してください。少なくともEPPlusでは、Textはユーザーに表示される値で、Valueはセルの内容です。そのため、列の幅がコンテンツよりも小さい場合、TextプロパティはValueプロパティとは異なる値になります。 – Magnetron
いいえ文字にはValueプロパティはありません。 – LocEngineer
@ Magnetron申し訳ありませんが、少し厚かったです。もちろん、 'cell.Value'を使うことができます。しかし、違いはありません。セル> 255の場合はまだ結果はありません。 – LocEngineer