我正在尝试使用c#在单词表中的相应列下标识特定值。尝试: 1-如果已知表索引 - 将表范围作为文本并迭代它以到达某个行和列。
问题是 - 表格位于文档中任何位置的特定标题下。索引是可变的,因此不能依赖索引。
答案 0 :(得分:0)
正如辛迪指出的那样,目前形式的问题过于宽泛。我不确定你是如何阅读你的文件的。另外,我不确定你的意思是什么"某些标题",你知道在目标表之前会有什么文字吗?
尽管如此,您可以查看以下示例,代码使用GemBox.Document:
string cellValue = null;
string headingText = "My Heading Text";
int rowIndex = 0;
int columnIndex = 0;
// Load Word document.
DocumentModel document = DocumentModel.Load("Sample.docx");
// Iterate through all paragraphs.
foreach (Paragraph paragraph in document.GetChildElements(true, ElementType.Paragraph))
{
// Check that paragraph is of heading style.
ParagraphStyle style = paragraph.ParagraphFormat.Style;
if (style == null || !style.Name.Contains("heading"))
continue;
// Check that heading paragraph contains our text.
if (!paragraph.Content.ToString().Contains(headingText))
continue;
// Get first table after the heading paragraph.
Table table = new ContentRange(paragraph.Content.End, document.Content.End)
.GetChildElements(ElementType.Table)
.Cast<Table>()
.First();
// Get cell value.
cellValue = table.Rows[rowIndex].Cells[columnIndex].Content.ToString();
break;
}
Console.WriteLine(cellValue);