office 2007中不能直接打開VB編輯器,請按Alt + F11Alt + F11Alt + F11Alt + F11打開。 import win32com.client # 導入腳本模塊 WordApp = win32com.client.Dispatch("Word.Application") # 載入WORD模塊 WordApp.Visible = True # 顯示Word應用程序
1、 新建Word文檔
doc=WordApp.Documents.Add() # 新建空文件 doc = WordApp.Documents.Open(r"d:\2011專業考試計划.doc") # 打開指定文檔 doc.SaveAs(r"d:\2011專業考試計划.doc") # 文檔保存 doc.Close(-1) # 保存后關閉,doc.Close()或doc.Close(0)直接關閉不保存
2、 頁面設置
doc.PageSetup.PaperSize = 7 # 紙張大小, A3=6, A4=7 doc.PageSetup.PageWidth = 21*28.35 # 直接設置紙張大小, 使用該設置后PaperSize設置取消 doc.PageSetup.PageHeight = 29.7*28.35 # 直接設置紙張大小 doc.PageSetup.Orientation = 1 # 頁面方向, 豎直=0, 水平=1 doc.PageSetup.TopMargin = 3*28.35 # 頁邊距上=3cm,1cm=28.35pt doc.PageSetup.BottomMargin = 3*28.35 # 頁邊距下=3cm doc.PageSetup.LeftMargin = 2.5*28.35 # 頁邊距左=2.5cm doc.PageSetup.RightMargin = 2.5*28.35 # 頁邊距右=2.5cm doc.PageSetup.TextColumns.SetCount(2) # 設置頁面
3、 格式設置
sel = WordApp.Selection # 獲取Selection對象 sel.InsertBreak(8) # 插入分欄符=8, 分頁符=7 sel.Font.Name = "黑體" # 字體 sel.Font.Size = 24 # 字大 sel.Font.Bold = True # 粗體 sel.Font.Italic = True # 斜體 sel.Font.Underline = True # 下划線 sel.ParagraphFormat.LineSpacing = 2*12 # 設置行距,1行=12磅 sel.ParagraphFormat.Alignment = 1 # 段落對齊,0=左對齊,1=居中,2=右對齊 sel.TypeText("XXXX") # 插入文字 sel.TypeParagraph() # 插入空行 注注注注::::ParagraphFormat屬性必須使用TypeParagraph()之后才能二次生效!
4、 插入圖片
pic = sel.InlineShapes.AddPicture(jpgPathName) # 插入圖片,缺省嵌入型 pic.WrapFormat.Type = 0 # 修改文字環繞方式:0=四周型,1=緊密型,3=文字上方,5=文字下方 pic.Borders.OutsideLineStyle = 1 # 設置圖片4邊線,1=實線 pic.Borders.OutsideLineWidth = 8 # 設置邊線寬度,對應對話框中數值依次2,4,6,8,12,18,24,36,48 pic.Borders(-1).LineStyle = 1 # -1=上邊線,-2=左邊線,-3下邊線,-4=右邊線 pic.Borders(-1).LineWidth = 8 # 依次2,4,6,8,12,18,24,36,48 注注注注::::InlineShapes方式插入圖片類似於插入字符(嵌入式),Shapes插入圖片缺省是浮動的。
5、 插入表格
tab=doc.Tables.Add(sel.Range, 16, 2) # 增加一個16行2列的表格 tab.Style = "網格型" # 顯示表格邊框 tab.Columns(1).SetWidth(5*28.35, 0) # 調整第1列寬度,1cm=28.35pt tab.Columns(2).SetWidth(9*28.35, 0) # 調整第2列寬度 tab.Rows.Alignment = 1 # 表格對齊,0=左對齊,1=居中,2=右對齊 tab.CellCellCellCell(1,1).Range.Text = "xxx" # 填充內容,注意Excel中使用wSheet.Cells(i,j) sel.MoveDown(5, 16) # 向下移動2行,5=以行為單位 注注注注::::插入n行表格之后必須使用MoveDown(5,n)移動到表格之后才能進行其它操作,否則報錯!
6、 使用樣式
for stl in doc.Styles: print stl.NameLocal # 顯示文檔中所有樣式名