수정 된 텍스트를 Excel 시트로 추출한 후 Excel에서 변경된 부분의 색상을 지정하는 제 3 자 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;
}
}
내가 훨씬 쉽게 작업 할 찾을 수 있기 때문에 내가 Interop를 사용하고, 그리고 또한 내가 수행하는 방법에 대한 어떤 점잖은 예를 찾을 수 있기 때문에 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