2012-03-30 2 views
4

다음은 내가 사용한 코드입니다.R의 xlsx 패키지를 사용하여 xls 파일에 수식 전달

library(xlsx) 
wb <- loadWorkbook('D:/test.xls') 
sheets <- getSheets(wb) 
sheet <- sheets[['my_sheet']] 

addDataFrame(x = ds, sheet = sheet, row.names = FALSE, col.names = FALSE, startRow=3, startColumn=1) 

cell.1 <- createCell(rows[1], colIndex=34)[[1,1]] 
setCellValue(cell.1, "=A32*B33") 
saveWorkbook(wb, 'D:/test.xls') 

데이터 프레임을 추가해도 문제없이 작동했습니다. 그러나 xls 파일을 열 때 셀 A34에서 text "= A32 * B33"을 보았습니다. 수식을 사용하려면 추가 ENTER를 눌러야합니다. 수식을 올바르게 입력하도록 도와 줄 수 있습니까?

+0

F9를 눌러야합니다 (시트를 열 때 계산 하시겠습니까?) 저는 일반적으로 rcom을 통해 이런 종류의 작업을 수행합니다. – Hansi

+0

나는 F9 대안을 시도했으나 제대로 작동하지 않았다. – gvrocha

답변

6

저는 과거에 패키지 xlsx을 사용 했었지만 엄청난 약속에도 불구하고 기능성과 사용 편의성이 크게 떨어졌습니다. 1 분 전에 패키지 설명서를 검색했을 때, 당신이하고 싶은 일을하는 것이 불가능한 것 같습니다.

대체XLConnect의 형태로 제공됩니다. XLConnect은 Apache POI 프로젝트의 동일한 Java 코드를 xlsx으로 사용하므로 운영 체제간에 여전히 높은 수준의 상호 운용성을 유지합니다.

XLConnect에는 필요한 것을 수행하는 기능이 있습니다 : setCellFormula().

참고 : http://cran.r-project.org/web/packages/XLConnect/vignettes/XLConnect.pdf


PS :

+0

R1C1 참조 스타일을 사용하여 수식을 전달할 수있는 방법을 알려 주시면 제가 좋아한다고 말하고 싶습니다. 내가 준 수식은 "RC [-27] * (RC [-1] + RC [-3] + RC [-5])"이고 오류가 발생했습니다 : FormulaParseException (Java) : 명명 된 범위 'RC'않습니다. 현재 통합 문서에 존재하지 않습니다. –

+0

+1 xlsx보다 XLConnect가 훨씬 더 운이 좋았습니다. – joran

-1

또 다른 대체 방법은 xls 대신 csv 파일을 출력 한 다음 Excel에서 열 수 있습니다.

관련 문제