解决方案 »

  1.   

    参考
    http://www.cnblogs.com/waynewjp/archive/2009/07/08/1519354.html
    或者用Aspose.Words 从Word文档中提取表格数据
    http://www.evget.com/article/2013/10/22/19898.html
      

  2.   

    将word文档表格数据插入到SQL Server数据库示例
    //将Word文档表格内数据写入到SQL数据库显示数据库信息
     private void btn_Write_Click(object sender, EventArgs e)
            {
                try
                {
                    G_wa.ActiveDocument.Save();//保存文档
                    object P_Save = false;//创建object对象
                    ((Word._Application)G_wa.Application).Quit(//退出应用程序
                         ref P_Save, ref G_missing, ref G_missing);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(//弹出消息对话框
                        ex.Message, "提示!");
                }
                btn_Write.Enabled = false;//停用插入数据按钮
                try
                {
                    InsertData();//执行插入数据方法
                    btn_display.Enabled = true;//启用显示文档按钮
                }
                catch (Exception ex)
                {
                    MessageBox.Show(//弹出消息对话框
                        "插入信息失败,请确认Word中添入的信息是否正确\r\n" 
                        + ex.Message, "提示!");
                }
            }
     // 向SQL数据库插入数据方法
                private void InsertData()
            {
                G_wa = new Microsoft.Office.Interop.Word.Application();//创建应用程序对象
                object P_Path = Directory.GetCurrentDirectory() + @"\Word.doc";
                Word.Document P_Document = G_wa.Documents.Open(//打开Word文档
                    ref P_Path, ref G_missing, ref G_missing, ref G_missing
                    , ref G_missing, ref G_missing, ref G_missing, ref G_missing
                    , ref G_missing, ref G_missing, ref G_missing, ref G_missing
                    , ref G_missing, ref G_missing, ref G_missing, ref G_missing);
                try
                {
                    Word.Range P_Range =//得到文档范围
                        P_Document.Range(ref G_missing, ref G_missing);
                    Word.Table P_Table = P_Range.Tables[1];//得到文档内的表格对象
                    List<InstanceClass> P_List_InstanceClass = //建立集合对象
                        new List<InstanceClass>();
                    for (int i = 2; i < 7; i++)
                    {
                        if (P_Table.Cell(i, 1).Range.Text != "\r\a" &&//判断表格内是否已经添加信息
                            P_Table.Cell(i, 2).Range.Text != "\r\a" &&
                            P_Table.Cell(i, 3).Range.Text != "\r\a" &&
                            P_Table.Cell(i, 4).Range.Text != "\r\a")
                        {
                            P_List_InstanceClass.Add(//向数据集合中添加数据
                                new InstanceClass()
                                {
                                    Name = P_Table.Cell(i, 1).Range.Text.Replace("\r\a", ""),
                                    Chinese = float.Parse(P_Table.Cell(i, 2).Range.Text.Replace("\r\a", "")),
                                    Math = float.Parse(P_Table.Cell(i, 3).Range.Text.Replace("\r\a", "")),
                                    English = float.Parse(P_Table.Cell(i, 4).Range.Text.Replace("\r\a", ""))
                                });
                        }
                    }
                    new DataTier(txt_Server.Text, txt_DataBase.Text, txt_UserName.Text,//向SQL数据库中插入数据
                        txt_PassWord.Text).InsertMessage(P_List_InstanceClass);
                    object P_Save = false;//创建object对象
                    ((Word._Application)G_wa.Application).Quit(//退出应用程序
                         ref P_Save, ref G_missing, ref G_missing);
                    this.Invoke(//窗体线程执行
                        (MethodInvoker)(() =>//使用Lambda表达式
                        {
                            MessageBox.Show("向SQL中插入数据成功!", "提示!");
                        }));
                }
     catch (Exception ex)
                {
                    object P_Save = false;//创建object对象
                    ((Word._Application)G_wa.Application).Quit(//退出应用程序
                         ref P_Save, ref G_missing, ref G_missing);
                    throw new Exception(ex.Message);//将异常抛向上一层
                }
            }
      

  3.   

    定义了wordApp、doc、book想获得书签为“aaa”定义的文本内容:
    book.select  // 选择该书签
    book.range.text  //值为空
      

  4.   

    解决了,原来是在模板doc中设置书签是出的问题,只是在光标位置处添加书签,正确的应该是选择书签对应的文本区域,再添加书签,就可以取到值了。