c#操作word书签的问题 wordc# 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考http://www.cnblogs.com/waynewjp/archive/2009/07/08/1519354.html或者用Aspose.Words 从Word文档中提取表格数据http://www.evget.com/article/2013/10/22/19898.html 将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);//将异常抛向上一层 } } 定义了wordApp、doc、book想获得书签为“aaa”定义的文本内容:book.select // 选择该书签book.range.text //值为空 解决了,原来是在模板doc中设置书签是出的问题,只是在光标位置处添加书签,正确的应该是选择书签对应的文本区域,再添加书签,就可以取到值了。 我自己做了一个聊天的程序,本地机可以,弄上网络就不行。 请教C#访问xml文件的问题(xml文件的内容见贴内) 请问用axWebBrowser 如何控制页面的radio button啊? 多线程操作listView问题(仅取出行) c#绘图问题 在网页上要控制一台机子上的某个程序,应该室可以的啥?? 请教c#中关于线程的一个很菜的问题 将焦点留在目前的窗口? 初学c# 问简单的问题 DataGrid初级使用问题? 一个事务中批量插入母表,无法获取到每一个新增行的SCOPE_IDENTITY() “端口“COM6”不存在。”(System.IO.IOException)
http://www.cnblogs.com/waynewjp/archive/2009/07/08/1519354.html
或者用Aspose.Words 从Word文档中提取表格数据
http://www.evget.com/article/2013/10/22/19898.html
//将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);//将异常抛向上一层
}
}
book.select // 选择该书签
book.range.text //值为空