求各位大神解答关于C#操作word的问题

qdsfsgzlh 2018-05-22 02:23:45
通过WORD自带的库实现刷新现有word文档中表格内容字体、段落格式,其中对表格单元格内容的段前段后设置无法实现,从网上搜了很多例程,但是对表格里面的内容都不起作用,表现形式就是设置无效,程序不报错但是格式无变化,已经尝试了以整个表的range为单位,以行的range为单位,以cell的range为单位。字体的设置、行距的设置都测试通过了。希望能得到各路大神的指导,并且能够说明白为什么不行,我感觉自己对word类库的理解有不对的地方,后面的其他设置可能也存在同样的问题。

object oFileName = @"C:\Users\admin\Desktop\test - 副本.docx";
object oReadOnly = false;
object oMissing = System.Reflection.Missing.Value;

Microsoft.Office.Interop.Word._Application oWord;
Microsoft.Office.Interop.Word._Document oDoc;
oWord = m_word;
oWord.Visible = false;

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

//MessageBox.Show(oDoc.Tables.Count.ToString());
for (int tablePos = 1; tablePos <= oDoc.Tables.Count; tablePos++)
{
Microsoft.Office.Interop.Word.Table nowTable = oDoc.Tables[tablePos];
//调整边框为双线
nowTable.Borders.OutsideLineStyle = MSWord.WdLineStyle.wdLineStyleSingle;
//调整内框为单线
nowTable.Borders.InsideLineStyle = MSWord.WdLineStyle.wdLineStyleDouble;
//调整字号及字体
nowTable.Range.Font.Name = "宋体";
nowTable.Range.Font.Size = 10.5F;
//调整行距
nowTable.Range.ParagraphFormat.LineSpacingRule = MSWord.WdLineSpacing.wdLineSpaceSingle;
//调整缩进
nowTable.Range.ParagraphFormat.LeftIndent = 0;
nowTable.Range.ParagraphFormat.RightIndent = 0;
nowTable.Range.ParagraphFormat.FirstLineIndent = 0;
nowTable.Range.ParagraphFormat.CharacterUnitFirstLineIndent = 0;
//调整段前段后间距--第一种尝试
nowTable.Range.ParagraphFormat.SpaceBeforeAuto = 0;// float.Parse("0");
nowTable.Range.ParagraphFormat.SpaceBefore = 100;
nowTable.Range.ParagraphFormat.SpaceAfterAuto = 0;
nowTable.Range.ParagraphFormat.SpaceAfter = 130;// float.Parse("0");
//第二种尝试
nowTable.Range.Paragraphs.SpaceBeforeAuto = 0;// float.Parse("0");
nowTable.Range.Paragraphs.SpaceBefore = 100;
nowTable.Range.Paragraphs.SpaceAfterAuto = 0;
nowTable.Range.Paragraphs.SpaceAfter = 130;// float.Parse("0");
}
...全文
841 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
大鱼> 2018-05-23
  • 打赏
  • 举报
回复
https://www.cnblogs.com/wsn1203/p/5409203.html
qdsfsgzlh 2018-05-22
  • 打赏
  • 举报
回复
引用 2 楼 Eiceblue 的回复:
另外操作Word表格可以看看这篇文章:https://blog.csdn.net/eiceblue/article/details/78409116
大神你给我的链接是用另一种库做的,那个库我搜了需要花钱,有免费版可以用吗?
qdsfsgzlh 2018-05-22
  • 打赏
  • 举报
回复
引用 1 楼 Eiceblue 的回复:
保存文档的代码呢
因为后面还有一些其他处理,保存的代码没有粘贴进来,就只有设置段前段后间距这部分调不出来,其他的设置都生效了。
Eiceblue 2018-05-22
  • 打赏
  • 举报
回复
保存文档的代码呢

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧