심볼릭 링크(SYLK)

Symbolic Link (SYLK)

SYLK(Symbolic Link)는 일반적으로 응용 프로그램, 특히 스프레드시트 간에 데이터를 교환하는 데 사용되는 Microsoft 파일 형식입니다.일반적으로 SYLK 파일에는.slk서픽스표시 가능한 ANSI 문자만으로 구성되어 데이터베이스와 같은 다른 응용 프로그램에서 쉽게 만들고 처리할 수 있습니다.

Microsoft 는, SYLK 사양을 공개하지 않습니다.Multiplan, Microsoft Excel, Microsoft Works, OpenOffice.org, Libre[1] Office 및 Gnumeric에서 다양한 포맷이 지원됩니다.이 형식은 1980년대에 도입되었고 1986년 [2]이후 발전하지 않았다.

콤마 구분치(CSV) 형식이 따옴표로 둘러싸지 않은 첫 번째 필드 이름(SYLK 파일 형식의 처음 두 문자와 일치)으로 저장될 때 자주 발생하는(및 유사) '발생'이 발생합니다.Microsoft Excel(최소한 Office 2016까지)은 "열려고 하는 파일 'x.csv'는 파일 [3][4]확장자가 지정한 형식과 다릅니다..."와 같은 파일 형식과 관련된 잘못된 오류 메시지를 표시합니다.

SYLK는 공격자가 임의의 코드를 실행할 수 있도록 하고 CSV 파일의 정상적인 외관으로 공격 벡터를 위장할 수 있는 기회를 제공하며 Microsoft [2]Excel의 최신(2016) 버전에서는 여전히 기본 활성화되어 있기 때문에 보안 문제를 일으키는 것으로 알려져 있습니다.

제한 사항

SYLK는 Unicode를 지원하지 않습니다.Unicode 를 서포트하는 애플리케이션(예를 들면 Microsoft Excel)에 의해서 SYLK 파일이 작성되는 경우에서도, 그 SYLK 파일은 Unicode 가 아닌 현재의 시스템의 ANSI 코드 페이지에 부호화 됩니다.응용 프로그램에 유니코드로 표시 가능하지만 현재 시스템의 코드 페이지에 코드 포인트가 없는 문자가 포함되어 있으면 SYLK 파일에서 물음표(?)로 변환됩니다.

세미콜론은 SYLK에서 필드 구분자로 취급되므로 데이터 값으로 이스케이프하지 않고 사용할 수 없습니다.SYLK 파일의 문자열에 세미콜론(;)이 포함되어 있는 경우는, 그 문자열이 「WIDget;AXC1254」와 같이 표시되도록, 그 앞에 다른 세미콜론을 붙여야 합니다.MS Excel은 Import 시 첫 번째 세미콜론을 삭제하고 데이터 요소는 "WIDGET;AXC1254"로 표시됩니다.

SYLK 입력 파일의 각 행은 260자 이하여야 합니다.그렇지 않으면 Microsoft Excel이 오류 메시지를 표시하고 너무 긴 행의 로드를 건너뜁니다.

샘플 SYLK 코드

예를 들어 확장자가 .slk인 텍스트파일의 다음 SYLK 코드입니다.

ID;P C;Y1;X1;K"1행 C;Y2;X1;K"2행 C;Y3;X1;K"합계" C;Y1;X2;K11 C;Y2;K22;K3;K2;K3;K2

를 적절한 스프레드시트로 읽으면 다음과 같이 표시됩니다.

행 1 11
행 2 22
33

숫자 포맷용

열 2에는 소수점 이하 2자리 형식이 적용됩니다.

F;P2;C2

여기서 P0은 General, P1은 10진수 없음, P2는 2자리 숫자, P3은 다음과 같이 소수점 2로 시작하는 $ 기호를 가집니다.

ID;P P;PGeneral P_(* #,#0_);_(* \-#,#0_);;_(@_) P;P_(* #,#0.00_);_(* \(#,#0.00_);_(*);_(*,#,#0.00\;;);-(*?_;;(@_) P;P_("$"* #,##0.00_;;;("$"* \(#,#0.00\);;_("$"* "-")_;;_(@_) C;Y1;X1;K"Row 1" C;Y2;X1;K"Row 2" C;Y3;X1;K"Total" C;Y1;X2;K2;K223;C;Y2;K2;K2;K2;K2;C2;K2;YER1C2+R2C2 F;P2;C2 E

를 적절한 스프레드시트로 읽으면 다음과 같이 표시됩니다.

행 1 11.00
행 2 22.00
33.00

열 너비의 경우

F;W< n1 > [S] < n2 > [S] < n3 >는 컬럼 그룹의 폭을 정의합니다.

[S]
한 칸
< n1 >
제1란
< n2 >
마지막 칸
< n3 >
글자 수의 열 너비

예를 들어 다음과 같습니다.이러한 SYLK 코드를 추가하면 1열과 2열의 열 너비가 각각 20과 30으로 조정됩니다.

F;W1 1 20 F;W2 2 30

셀 포맷 속성

F; < cl > < n > < c2 >
< cl >
다음 1글자 형식 코드 중 하나:
D
체납
C
연속 크로스 셀 디스플레이
E
과학적 지수화
F
고정 소수점
G
일반 형식
$
선두 $와 소수점 2
*
막대 그래프, 단위당 1개의 아스타리스크(5는 ******)
< n >
자리수
< c2 >
다음 1글자 정렬 코드 중 하나:
D
체납
C
중심
G
general(텍스트 왼쪽, 숫자 오른쪽)
L
왼쪽 맞춤
R
정당한 정당성

예를 들어 다음과 같습니다.다음 SYLK 코드는 셀 포맷 속성을 나타냅니다.

ID;P P;PGeneral C;Y1;X1;K"1행 왼쪽 맞춤" F;P0;FG0L C;Y2;X1;K"2행 우측 맞춤" F;P0;FG0R C;Y3;X1;K"중앙의 총량" F;P0;FG0C C;Y1;X2;K11 C;Y2;X2;K22 C;Y3;X2;K0;ER1C2+R2C2 F;Y1;X2;FF2L F;Y2;X2;FF2R F;Y3;X2;2C F달러, W1 2 25 E

SYLK 구문

SYLK_file ::= 레코드 + 레코드 ::= 레코드 유형 필드* 줄바꿈
  • 아이디 레코드
    • 용도:
      스프레드시트 유형 및 작성자를 식별하는 헤더입니다.
      파일의 첫 번째 레코드여야 합니다.
    • 레코드 유형:
      아이디
    • 필수 필드:
      P 프로그램
      파일 작성자
      • 작성자에는 다음이 포함됩니다.
        • MP(멀티플랜)
        • XL(Excel)
    • 가능한 필드:
      N
      존재하는 경우 파일은 ;N 스타일 셀 보호를 사용합니다.
      없는 경우 파일은 ;P 스타일의 셀 보호를 사용합니다.
      E
      NE 레코드가 존재하는 경우 중복됩니다.
      없을 경우 NE 레코드는 중복되지 않습니다.
  • B 레코드
    • 용도:
      스프레드시트의 행 및 열 수를 나타냅니다.
      C와 F의 레코드보다 먼저 기록하도록 권장합니다.
    • 레코드 유형:
      B
    • 필수 필드:
      X열
      최대 열 수를 나타냅니다.
      Y행
      최대 행 수를 나타냅니다.
  • C레코드
    • 용도:
      셀 내용
    • 레코드 유형:
      C
    • 필수 필드:
      [X] 열
      열 위치(1개 기준)
    • 가능한 필드:
      Y행
      행 위치(1개 기준)생략할 경우 최근에 발견된 값이 사용됩니다.
      E식
      세포발현상
      K값
      세포값
      [C]
      열참조
      R행
      행 참조
      G
      공유값의 정의
      D
      정의, 공유 표현
      S
      참조 공유 값 또는 공유 표현
      N
      존재하는 경우 셀은 보호되지 않습니다.
      ID 레코드에 존재하지 않고 ;N이 있으면 셀이 보호됩니다.
      P
      존재하는 경우는, 셀이 보호되고 있습니다.
      ID 레코드에 없는 경우 및 ;N이 없는 경우 셀은 보호되지 않습니다.
      H
      존재하는 경우 셀은 숨겨집니다.
      없는 경우 셀은 숨겨지지 않습니다.
      M식
      (X,Y)에서 (C,R)까지의 행렬식
      I
      매트릭스 안에
    • 호환 필드:
      ;G가 있으면 ;E가 없어야 합니다.
      ;G가 있으면 ;K가 있어야 합니다.
      ;D가 있으면 ;E가 있어야 합니다.
      ;S가 있으면 ;E,;K,;G,;D 및 ;M이 없어야 합니다.
      'S'가 있으면 'R'과 'C'가 있어야 합니다(공유 값/식을 복사할 행과 열을 정의합니다).
      ID 레코드에 ;N이 있으면 ;P가 없어야 합니다.
      ;N이 ID 레코드에 없는 경우 ;N이 없어야 합니다.
      ;M이 있으면 ;E가 없어야 합니다.
      I가 있는 경우, ;K와 ;E가 없어야 합니다.
  • P 레코드
    • 용도:
      셀 형식
      F 레코드가 존재하는 경우,는 그 레코드보다 우선합니다.
    • 필수 필드:
      P 포맷
      Excel 스타일 셀 형식 사양
  • F 레코드
    • 용도:
      포맷
      P 레코드가 존재하는 경우는, 그 레코드를 따릅니다.
    • 가능한 필드:
      [X] 열
      열(1개 기준)
      Y행
      행(베이스 1개)
      [C]
      열(1개 기준)
      R행
      행(베이스 1개)
      F 형식
      셀/행/열 형식
      포맷은
      ch1 자리 ch2
      ch1은
      D
      체납
      C
      통화
      E
      지수
      F
      고정된.
      G
      일반
      $
      달러
      *
      그래프
      %
      퍼센티
      digits는 소수점 뒤의 자릿수입니다.
      ch2는 얼라인먼트입니다.
      D
      체납
      C
      중심
      G
      표준.
      L
      왼쪽
      R
      맞다
      -
      무시당했다
      X
      채우다
      D형식
      디폴트 포맷
      포맷은
      ch1 자리 ch2
      ch1은
      C
      통화
      E
      지수
      F
      고정된.
      G
      일반
      $
      달러
      *
      그래프
      %
      퍼센티
      digits는 소수점 뒤의 자릿수입니다.
      ch2는 얼라인먼트입니다.
      C
      중심
      G
      표준.
      L
      왼쪽
      R
      맞다
      -
      무시당했다
      X
      채우다
      E
      수식을 표시하다
      K
      쉼표를 표시하다
      W col1 col2 폭
      열 너비 설정
      N 폰티드
      사용할 글꼴
      P지수
      Excel 셀 형식, P 레코드의 번호(예: P0은 보통 P로 선언되는 첫 번째 P 레코드를 의미합니다.페네랄
      S스타일
      스타일.
      다음 문자는 스타일의 일부가 될 수 있습니다.
      I
      이탤릭체
      D
      대담한
      T
      격자선 상판
      L
      왼쪽 격자선
      B
      격자선 바닥
      R
      격자선 오른쪽
      S
      음영 배경
      H
      행/열 머리글이 있는 경우 표시 안 함
      파일 전체에 없는 경우 행/열 머리글 표시
      G
      있는 경우 기본 격자선을 표시하지 않음
      전체 파일에 없는 경우 기본 그리드선 표시
    • 호환 필드:
      ;X,;Y,;C,;R,;D,;E,;K,;W,;P,;H 또는;G 중 하나 이상이 있어야 합니다.
      ;X 또는;Y가 있으면;X와;Y가 모두 있어야 합니다.(셀 형식이 설정됩니다.)
      ;X가 있으면 ;R,;C,;E,;K,;W,;N,;H,;G가 없어야 합니다.
      ;R이 있는 경우, ;X,;Y,;C,;E,;K,;W,;N,;H,;G가 없어야 합니다(기본 행 형식이 설정됩니다.)
      ;C가 있으면 ;X,;Y,;R,;E,;K,;W,;N,;H,;G가 없어야 합니다(기본 열 형식이 설정됩니다).
      ;D가 있는 경우 ;X,;Y,;R,;C가 없어야 합니다.(기본 스프레드시트 형식이 설정됩니다.)
      ;X,;Y,;R,;C가 있으면 ;P 및/또는 F 및/또는 S가 있어야 합니다.
  • O레코드
    • 용도:
      옵션들
    • 가능한 필드:
      반복 델타
      존재하는 경우 값 반복 허용
      없을 경우 순환 참조가 허용되지 않습니다.
      iter(최대 반복 횟수)
      델타(스텝 테스트).작을 경우 종료됩니다.)
      C
      가장 가까운 선행 C 레코드에서의 완료 시험
      P
      시트가 보호되고 있다
      L
      A1 모드 참조 사용
      L이 지정되더라도 R1C1 참조는 SYLK 파일 표현식에 사용됩니다.
      M
      존재하는 경우 수동 재계산을 사용합니다.
      없을 경우 자동 재계산을 사용합니다.
      E
      매크로 시트
      이것은 NN 레코드에서 ;G 또는;F 필드가 처음 나타나기 전에 나타나야 합니다.
      이것은 매크로 전용 함수를 사용하는 첫 번째 C 레코드 앞에 표시됩니다.
      V값
      value는 시리얼 날짜 값 계산에 사용되는 기준 날짜를 나타냅니다.
      1900년 1월 1일 0:1
      1904년 1월 4:1
  • NU 레코드
    • 용도:
      파일명 치환
      NE 레코드가 있는 경우, 그 앞에 가 필요합니다.
    • 필수 필드:
      L 파일명
      오래된 파일 이름
      F 파일명
      새 파일 이름
  • NE 레코드
    • 용도:
      외부 링크
    • 필수 필드:
      E식
      스프레드시트의 대상 영역
      F 파일명
      소스 파일
      S식
      외부 시트의 소스 영역
  • NN 레코드
    • 용도:
      이름을 정의합니다.
      이름 사용 전에 NN이 표시되는 것이 효율적입니다.
    • 필수 필드:
      N명
      이름.
      E식
      이름 값을 나타내는 표현
    • 가능한 필드:
      G ch1 ch2
      실행 가능 이름(명령어 키 별칭 포함)
      K ch1 ch2
      사용하지 않는 명령어에일리어스가 있는 일반 이름
      F
      기능으로서 사용 가능한
    • 호환 필드:
      ;G가 있으면 ;K가 없어야 합니다.
  • W 레코드
    • 용도:
      창 정의
  • NL 레코드
    • 용도:
      차트 외부 링크
  • E레코드
    • 용도:
      파일의 끝
      마지막 기록일 거야

날짜와 시간은 부동 소수점 값으로 저장됩니다.정수 부분은 1900년 1월1일부터의 일수(O레코드에 1900을 계산의 시작점으로 지정하는;V0 지시어가 포함되어 있는 경우), 분수는 초수를 86400으로 나눈 값(60*60*24, 1일의 초수)입니다.Unix 시각으로의 변환은 1970년1월 1일과 1900년1월 1일(25,569일)의 차이를 뺀 후 86400을 곱하여 실행할 수 있습니다.unix 시각에서 SYLK datetime으로 변환하려면 값을 86400으로 나눈 후 25569를 추가합니다.셀 스타일은 날짜 형식 값으로 설정해야 합니다.P;Pdd/mm/yyyy\ hh:mm:ss올바르게 표시되도록 합니다.

Excel로 열린 .slk 파일내보내는 셀에 255자로 제한되어 있습니다.이 제한은 Libre Office에는 없습니다.

외부 링크

  • 자세한 예는 이쪽에서도 확인할 수 있습니다.

SYLK 구문은 다음 URL에서 찾을 수 있습니다.

및 다음 위치에 있습니다.

Excel을 사용한 읽기 및 저장 관련 제한:

레퍼런스

  1. ^ "LibreOffice Calc - Supported File Formats". 12 November 2016.
  2. ^ a b Stan Hegt (2019-10-30). "Abusing the SYLK file format". outflank.nl. Retrieved 2019-12-14.
  3. ^ ""SYLK: File format is not valid" error message when you open file". Retrieved August 18, 2015.
  4. ^ "Excel CSV import returns an SYLK file format error". 9 January 2012. Retrieved August 18, 2015.