代码之家  ›  专栏  ›  技术社区  ›  Amberopolis

使用Mata xl()合并Excel中的单元格

  •  1
  • Amberopolis  · 技术社区  · 6 年前

    我有许多使用Stata命令创建的Excel表 putexcel export excel .

    mata 对于格式,而不是 .

    这很有效,除非我尝试将两个单元格合并为一个:

    *Build sample matrix
    set obs 10
    foreach i of numlist 1/10{
        gen var`i' = _n + `i'
    }
    
    mkmat var1-var10, matrix(m)
    
    *To Excel
    quietly putexcel set "Test_Merge.xlsx", sheet("Sheet1") modify
    quietly putexcel A1=matrix(m) 
    
    *Prep for mata
    mata: b = xl()
    mata: b.load_book("Test_Merge.xlsx")
    
    *Left-align some cells
    mata: cols = (1,2)
    mata: b.set_horizontal_align(1, cols, "left")
    
    *Center some cells
    mata: cols = (4,5)
    mata: b.set_horizontal_align(1, cols, "center")
    
    *Merge some cells
    mata: cols = (7,8)
    mata: b.set_horizontal_align(1, cols, "merge")
    

    普特克 命令i将执行以下操作:

    quietly putexcel (G1:H1), merge
    

    然而,在 玛塔 版本中,“合并”选项似乎只是将指定的单元格居中,而不是将它们合并在一起。

    b.set_horizontal_align() ?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Pearly Spencer Paul Cruz    6 年前

    你需要使用 mata 功能 b.set.sheet.merge() 相反:

    clear
    
    *Build sample matrix
    set obs 10
    foreach i of numlist 1/10{
        gen var`i' = _n + `i'
    }
    
    mkmat var1-var10, matrix(m)
    
    *To Excel
    quietly putexcel set "Test_Merge.xlsx", sheet("Sheet1") modify
    quietly putexcel A1=matrix(m) 
    
    *Prep for mata
    mata: b = xl()
    mata: b.load_book("Test_Merge.xlsx")
    
    *Left-align some cells
    mata: cols = (1,2)
    mata: b.set_horizontal_align(1, cols, "left")
    
    *Center some cells
    mata: cols = (4,5)
    mata: b.set_horizontal_align(1, cols, "center")
    
    *Merge some cells
    mata: rows = (1,1)
    mata: cols = (7,8)
    mata: b.set_sheet_merge("Sheet1", rows, cols)
    

    请注意粗体的更改,这些更改将函数应用于两个单元格。