public Dictionary<string, string> GetWordTableContent(object fullname, int tableIndex)
{
Microsoft.Office.Interop.Word.Application wordApp = new
Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document doc = new
Microsoft.Office.Interop.Word.Document();
object missing = System.Reflection.Missing.Value;
Dictionary<string, string> tableItems = new Dictionary<string, string>();
try
{
wordApp.Visible = false;
doc = wordApp.Documents.Open(ref fullname, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing);
if (doc.Content.Tables.Count > 0)
{
if (tableIndex <= 0 || tableIndex > doc.Content.Tables.Count)
throw new Exception("Incorrect tableIndex.");
Microsoft.Office.Interop.Word.Table table = doc.Content.Tables[tableIndex];
for (int i = 1; i <= table.Rows.Count; i++)
{
for (int c = 1; c <= table.Columns.Count; c++)
{
try
{
tableItems.Add(string.Format("{0},{1}", i, c), table.Cell(i, c).Range.Text ?? "");
}
catch (COMException comEx)
{
if (comEx.Message == "The requested member of the collection does not exist.")
continue;
throw;
}
}
}
}
}
catch (Exception err)
{
if (doc != null)
doc.Close(ref missing, ref missing, ref missing);
if (wordApp != null)
wordApp.Quit(ref missing, ref missing, ref missing);
throw;
}
finally
{
if (doc != null)
doc.Close(ref missing, ref missing, ref missing);
if (wordApp != null)
wordApp.Quit(ref missing, ref missing, ref missing);
}
return tableItems;
}