应用系统数据输入是个大问题。一个客户很多数据存在word文件里,word文件是文字与表格混排。需要将表格中的数据提取出来。C#开发,采用了这种方式:
public void readWordFile()
{
object oFileName = @"../Files/Employees0.doc";
object oReadOnly = true;
object oMissing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Word._Application oWord = new Microsoft.Office.Interop.Word.Application();
oWord.Visible = true;
Microsoft.Office.Interop.Word._Document oDoc = oWord.Documents.Open(ref oFileName, ref
oMissing, ref oReadOnly, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref
oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref
oMissing);
for (int tablePos = 1; tablePos <= oDoc.Tables.Count; tablePos++)
{
Microsoft.Office.Interop.Word.Table nowTable = oDoc.Tables[tablePos];
string tableMessage = string.Format("第{0}/{1}个表:/n", tablePos, oDoc.Tables.Count);
for (int rowPos = 1; rowPos <= nowTable.Rows.Count; rowPos++)
{
for (int columPos = 1; columPos <= nowTable.Columns.Count; columPos++)
{
tableMessage += nowTable.Cell(rowPos, columPos).Range.Text;
tableMessage += tableMessage.Remove(tableMessage.Length - 2, 2);
tableMessage += "/t";
}
tableMessage += "/n";
}
string msgTable = tableMessage;
}
oDoc.Close(ref oMissing, ref oMissing, ref oMissing);
oWord.Quit(ref oMissing, ref oMissing, ref oMissing);
Marshal.ReleaseComObject(oDoc);
Marshal.FinalReleaseComObject(oWord);
oWord = null;
}
}