Stata 使用Mata xl()合并Excel中的单元格
我使用Stata命令Stata 使用Mata xl()合并Excel中的单元格,stata,Stata,我使用Stata命令putexcel或export Excel创建了许多Excel表格 保存后,我需要格式化许多表。由于文件的大小,我尝试使用mata进行格式化,而不是putexcel 这很好,除非我尝试将两个单元格合并为一个: *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
或export Excel
创建了许多Excel表格
保存后,我需要格式化许多表。由于文件的大小,我尝试使用mata
进行格式化,而不是putexcel
这很好,除非我尝试将两个单元格合并为一个:
*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")
使用putexcel
命令,我将执行以下操作:
quietly putexcel (G1:H1), merge
但是,在mata
版本中,“merge”选项似乎只是将指定的单元格居中,而不是将它们合并在一起
我是否误解了
b中的“合并”选项。设置水平对齐()
?您需要改用mata
函数:
清楚的
*建立样本矩阵
设置obs 10
numlist的foreach i 1/10{
gen var`i'=\u n+`i'
}
mkmat var1-var10,矩阵(m)
*出类拔萃
修改Excel集合“Test_Merge.xlsx”,工作表(“Sheet1”)
表A1=矩阵(m)
*为玛塔做准备
mata:b=xl()
mata:b.load\u book(“Test\u Merge.xlsx”)
*左对齐一些单元格
mata:cols=(1,2)
mata:b.设置水平对齐(1列,“左”)
*把一些细胞集中起来
mata:cols=(4,5)
mata:b.设置水平对齐(1列,“中心”)
*合并一些单元格
mata:行=(1,1)
mata:cols=(7,8)
mata:b.set\U sheet\U merge(“Sheet1”,行,列)
请注意粗体的更改,这将函数应用于两个单元格
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)