以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助可以用代码控制word表格和excel表的字体和字号吗?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101349)

--  作者:lhlh
--  发布时间:2017/5/29 10:46:00
--  [求助可以用代码控制word表格和excel表的字体和字号吗?
可以用代码控制word单元格和excel表的字体和字号吗?现希望表格高度不变,段落不变,只将文字和段落多的单元格判断后自动更改字号。
[此贴子已经被作者于2017/5/29 10:46:06编辑过]

--  作者:有点色
--  发布时间:2017/5/29 11:07:00
--  

 要用到vba进行操作。

 

 http://www.foxtable.com/webhelp/scr/2121.htm

 


--  作者:lhlh
--  发布时间:2017/5/29 13:36:00
--  
谢谢
这个链接是excel的,很实用:
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\Report.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range = Ws.Range("A1")
Rg.Value = "Foxtable操控Excel全攻略"
With Rg.Font
    .Name = "黑体" \'字体
    .Size = 20 \'字号
    .Bold = True   \'加粗
    .Italic = True \'斜体
    .ColorIndex = 3\'颜色
End With
App.Visible = True

能不能帮改一下用于word的,特别是word表格的?


--  作者:有点色
--  发布时间:2017/5/29 14:26:00
--  

参考

 

Dim app As New MSWord.Application
try
    Dim fileName = "d:\\test.doc"
    Dim doc = app.Documents.Open(fileName)
    Dim t = doc.Tables(1)
   
    t.Cell(1, 2).Select
    With app.ActiveWindow.Selection.Font
        .Name = "黑体" \'字体
        .Size = 20 \'字号
        .Bold = True   \'加粗
        .Italic = True \'斜体
        .ColorIndex = 3\'颜色
    End With
    app.visible = True
catch ex As exception
    msgbox(ex.message)
    app.Quit
finally
    \'app.Quit
End try

 


--  作者:lhlh
--  发布时间:2017/5/29 14:55:00
--  
谢谢!
--  作者:lhlh
--  发布时间:2017/6/4 12:45:00
--  
如果用以下代码打印WORD报表,用代码怎么设定某单元格字号大小?

Dim tm As String  = ProjectPath & "Attachments\\人员信息.doc" \'指定模板文件
Dim
fl As String = ProjectPath & "Reports\\人员信息.doc" \'指定目标文件
Dim
wrt As New WordReport(Tables("简历"),tm,fl) \'定义一个WordReport
wrt.Build()
\'逐行生成报表
wrt.Show()
\'显示报表
--  作者:有点色
--  发布时间:2017/6/4 16:16:00
--  

 你为什么不直接在模板那里先设置好?

 

 生成报表后,重新打开word文件,然后设置。

 

wrt.Build()

wrt.quit()

\'然后加上4楼的代码


--  作者:lhlh
--  发布时间:2017/6/5 2:07:00
--  

主要是文字有时多有时少,文字多会撑爆表格,想要人工做个下拉框设定字号,再不行只能做多个字体大小不同的报表了。


以下代码可以运行,但是在关闭WORD后,WORD出现问题提示:



此主题相关图片如下:捕获.jpg
按此在新窗口浏览图片

此主题相关图片如下:捕获1.jpg
按此在新窗口浏览图片

 

Dim tm As String  = ProjectPath & "Attachments\\人员信息.doc"    \'指定模板文件

Dim ffl As String = ProjectPath & "Reports\\人员信息.doc"        \'指定目标文件

Dim wrt As New WordReport(Tables("简历"),tm,ffl)                  \'定义一个WordReport

wrt.Build() \'将数据逐行生成报表

wrt.Quit    \'关闭WROD报表

 

Dim app As New MSWord.Application

try

    Dim fileName = ProjectPath & "Reports\\人员信息.doc"

    Dim doc = app.Documents.Open(fileName)

    Dim t = doc.Tables(1)

    

    t.Cell(10, 2).Select

    With app.ActiveWindow.Selection.Font

        .Size = 16 \'字号

    End With

    app.visible = True

catch ex As exception

    msgbox(ex.message)

\'    app.Quit

finally

    \'app.Quit

End try

[此贴子已经被作者于2017/6/5 2:10:13编辑过]

--  作者:有点色
--  发布时间:2017/6/5 8:51:00
--  

1、单元不能设置格式【自动缩放】?可以根据单元格的宽度和高度缩放你的字号的;

 

2、上图的问题,去找到对应的dot文件,把其删除即可。


--  作者:lhlh
--  发布时间:2017/6/5 12:21:00
--  
1.设置自动缩放不行,我这是个多段落的多行文本框,自动缩放只是将所有文字压缩为一行,没办法看。

2.删除对应的DOT文件,再打印操作还是出现上面的提示,但是不用设置字体这段代码就没问题。看来只能做多个字体大小不同报表了。