清除空行-选区处理
1、清除空行-选区处理
1 #region add by whl 20141219 2 MSWord.Paragraphs myParagraphs = oRange.Paragraphs; 3 int i = 0; 4 foreach (MSWord.Paragraph myParagraph in myParagraphs) 5 { 6 i++; 7 //剪切空行,下一行的Range上移,若下一行为空行,此时仍会当成myparagraphs中的元素,此处即排除此种情况 8 if (i > myParagraphs.Count) 9 { 10 break; 11 } 12 if (myParagraph.Range.Text == "\r") 13 { 14 myParagraph.Range.Cut(); 15 } 16 } 17 #endregion
改进
1 #region add by whl 20141219 2 MSWord.Paragraphs myParagraphs = oRange.Paragraphs; 3 int i = 0; 4 foreach (MSWord.Paragraph myParagraph in myParagraphs) 5 { 6 i++; 7 if ((myParagraph.Range.Text == "\r") && (i <= myParagraphs.Count)) 8 { 9 myParagraph.Range.Cut(); 10 } 11 } 12 #endregion
再次改进
#region 清除空行 if (cBClearBS.Checked) { #region add by whl 20141219 MSWord.Range LastParaRange = null; MSWord.Paragraphs myParagraphs = oRange.Paragraphs; int numPara = myParagraphs.Count; int i = 0; foreach (MSWord.Paragraph myParagraph in myParagraphs) { i++; if ((myParagraph.Range.Text == "\r") && (i <= numPara)) { if (myParagraph.Range.End == _doc.Content.End)//若包含最后一段,则单独处理 { LastParaRange = myParagraph.Range; break; } myParagraph.Range.Cut(); } } if (LastParaRange != null)//单独处理最后一段 { LastParaRange.Cut(); } #endregion } #endregion
浙公网安备 33010602011771号