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; }