2013-10-02 2 views
2

R으로 가져올 Excel 파일 컬렉션이 있습니다.Excel에서 가져올 때 숨겨진 데이터를 무시하는 방법

파일에는 숨기고 싶은 숨겨진 데이터가 포함되어 있습니다. 예를 들어 파일을 가져 오지 않았거나 숨겨진 플래그로 파일을 가져 와서 삭제할 수 있습니다.

  • 전체 시트가 시트 내에서가 숨겨져 있습니다
  • 특정 행을 숨겨 :

    파일은 숨겨진 두 가지 유형의 데이터가 포함되어 있습니다.

Excel의 데이터가 숨겨져있는 경우를 식별하는 방법이 있습니까?

은 지금 나는 gdata 패키지를 사용하지만, XLConnect 또는 기타 패키지를 사용하는 것이 행복하고

샘플 코드 :

library(gdata) 
xlsfile <- "test.xls" 

# grab all the sheet names. 
# This is giving me both hidden & non-hidden sheets. I would like only the latter 
sheets <- sheetNames(xlsfile) 

# read in the xls file, by sheet 
xlData <- 
    lapply(sheets, function(s) 
     read.xls(xlsfile, sheet=s, stringsAsFactors = FALSE)) 

필요한 경우, 나는 더미 xls 파일을 만들 수 있습니다 그것을 게시하십시오.

+2

지옥의 동그라미에 갇히고있는 나의 위임. 다른 쪽에서이 작업을 더 쉽게 수행 할 수 있다고 생각합니다. 즉 숨겨진 데이터가 아닌 데이터를 CSV로 내보내는 VBA 스크립트를 작성하는 것이 더 쉽습니다. 그러나 나는 원칙적으로이 파일들을 거부 할 것이기 때문에 더 구체적인 조언을 해줄 수는 없다. – Roland

+0

아마 이것을 이미 알고있을 것입니다 만 데이터를 복사하기 전에 보이는지 확인할 수 있습니다 : Sheets (ws) .Visible = false then copy ... –

+0

@PortlandRunner'visible' 플래그가 수출되고 있습니까? –

답변

2

XLConnect에는 원하는 기능을 수행하는 isSheetHidden이라는 멋진 기능이 있습니다. 당신이 시트의 속성에 액세스 할 수있는 기본 펄 패키지를 호출하여 자신의 함수를 작성해야

library(XLConnect) 
xlsfile <- "Book1.xls" 
wb <- loadWorkbook(xlsfile, create = TRUE) 
isSheetHidden(wb, "Sheet1") # FALSE 
isSheetHidden(wb, "Sheet2") # TRUE 

gdata에서하지만이 가능합니다 : 가정 Sheet2이 숨겨져 있습니다.

+0

감사합니다. 지금 그들은 단지 행에 대해 비슷한 것을 가지고 있다면 ...? –

+0

그래,'isHidden' 행에 대해 작동하지 않습니다. 그래서,'XLConnect'는 멋진 Java 라이브러리 인 HFFS (Horrible Spreadsheet Format)를 래핑합니다. 'XLConnect' 래퍼는 [Github에 게시되었습니다] (https://github.com/miraisolutions/xlconnect-java)입니다. [HFFS 용 API는 행에 대해 getHidden이 있음을 나타냅니다.] (http://poi.apache.org/apidocs/org/apache/poi/hssf/record/ColumnInfoRecord.html#getHidden%28%29). 당신이'getHidden' 함수를 노출하도록 래퍼를 약간 편집하는 것이 그리 어렵지 않을 수도 있습니다. 저자에게 물어볼 수도 있습니다 :) – nograpes

+1

'rcom'을 사용하여 resepct로 행 가져 오기를 숨길 수 있습니다. http://rcom.univie.ac.at/ – Hansi

관련 문제