#c# #asp.net #ms-word #openxml
#c# #asp.net #ms-word #openxml
Вопрос:
Мне нужно прочитать это слово (.DOC и .DOCX) построчно, используя OpenXML.
В этом коде я установил regexp
, чтобы проверить, начинается ли строка с пробела, буквы, символа маркера или символа — или числа
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
string file = @"C:UsersDownloadsqst.docx";
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(file, true))
{
Body body = wordDoc.MainDocumentPart.Document.Body;
string contents = "";
var reg = new Regex(@"^[sp{L}d•-►]");
foreach (Paragraph co in
wordDoc.MainDocumentPart.Document.Body.Descendants<Paragraph>().Where<Paragraph>(somethingElse =>
reg.IsMatch(somethingElse.InnerText)))
{
if (co.ParagraphProperties != null || co.ParagraphProperties.NumberingProperties != null)
{
contents = co.InnerText "<br />";
}
else
{
// Do other checking.
}
}
Response.Write(contents);
}
}
}
При использовании этого кода возврат в браузере будет неправильным, поскольку маркированные и нумерованные списки файла word не отображаются…
Section 1
- Para 1.1
Content 1.1
test 2
test 3
•Gaio Giulio Cesare
•Quinto Orazio Flacco
•Marco Porcio Catone
Section 2
- Para 2.1
Content 2.1
test 4
test 5
- Gaio Giulio Cesare
- Quinto Orazio Flacco
- Marco Porcio Catone
► Marco Porcio Catone
► Quinto Orazio Flacco
► Gaio Giulio Cesare
Комментарии:
1. Кросс-размещено по адресу: docs.microsoft.com/en-us/answers/questions/340644 /. … Пожалуйста, прочитайте правила перекрестной публикации: excelguru.ca/content.php?184
2. Взгляните на нумерацию, уровни и списки обработки текста. Как вы увидите, списки в OpenXML не содержат фактического символа маркера. Они содержат отдельное
<w:abstractNum>
определение, на которое ссылается элемент paragraph.3. Зачем запрашивать самый быстрый способ? Есть ли какие-либо требования к производительности, которым вы должны соответствовать?
4. @Kwiksilver спасибо за ответ. это означает изменять таким образом? Не работает…
var reg = new Regex(@"^[sp{L}d•-►<w:abstractNum>]");
5. Обработка данных @Kwiksilver должна быть быстрой