Tricks 더 많은 작업을 위해 Excel에서 표 형식을 저장합니다. Excel에서 테이블 문서 저장 트릭 IT 1C Excel에서 테이블 문서 저장

이 방법은 간단합니다. 그 본질은 그 객체입니다 재목 방법 :

  • 기록 (< ИмяФайла>, < ТипФайлаТаблицы \u003e) 파일에 데이터를 언로드하는 것;
  • 읽다 (< ИмяФайла>, < СпособЧтенияЗначений \u003e) 파일에서 데이터를 다운로드하려면.

주의!

레코드 메서드 ()는 클라이언트와 서버에서 모두 사용할 수 있습니다. 읽기 방법 ()은 서버 측에서만 사용할 수 있습니다. 이것을 기억해야합니다
클라이언트 서버 상호 작용을 계획 할 때.

테이블 문서를 파일에 저장하는 예제를 고려하십시오. 어떤 방식 으로든 객체 문서 문서를 만들고 채우는 것이 필요합니다. 하역 파일은 하나의 행만 수행됩니다.

제철소 ...에 쓰기 (펄프, 변형 나무, XLSX));

여기 제철소 - 형성된 표 형식, 파일의 경로 - 언로드를위한 파일의 이름, Typidail 벌크 개 .xlsx. - 생성 된 파일의 형식입니다. 다음과 같은 Excel 형식이 지원됩니다.

  • XLS95 - Excel 95 형식;
  • XLS97 - Excel 97 형식;
  • XLSX - Excel 2007 형식.

tabo \u003d 새로운 목재;
제철소 ...에 읽기 (풀 파일, 프로모션).);

여기 파일의 경로 - 다운로드 가능한 Excel 파일의 경로. 인정 촉진 소스 문서에서 읽은 데이터를 해석하는 방법을 결정합니다. 옵션을 사용할 수 있습니다.

  • 값;
  • 본문.

Ole을 통해 교환하십시오.

OLE 자동화 기술을 통한 교환은 Excel 파일에서 가장 일반적인 소프트웨어 작업 버전이 아닙니다. Excel에서 제공하는 전체 기능을 사용할 수 있지만 다른 방법에 비해 느린 작업 속도가 느립니다. MS Excel 설치가 OLE를 통해 교환해야합니다.

  • 최종 사용자의 컴퓨터에서 클라이언트 측에서 Exchange가 발생하면;
  • 컴퓨터 서버 1c : Enterprise, Exchange가 서버 측에서 발생한 경우.

하역:

// COM 객체 만들기
Excel \u003d 새로운 Comback ( "Excel.Application");
// 경고 및 질문의 출력을 비활성화합니다
뛰어나다 ...에 displayAllerts \u003d false;
// 새 책 만들기
도서 \u003d Excel. 통합 문서. add ();
// 첫 번째 시트에 위치합니다
시트 \u003d 책. 워크 시트 (1);

// 셀의 값을 기록합니다
시트 ...에 세포 (피팅, 롤). 값 \u003d iphello;

// 파일 저장
도서 ...에 Saveas (이름 파일);


뛰어나다 ...에 quit ();
Excel \u003d 0;

독서:

// -- 옵션 1 --

// COM 객체 만들기
Excel \u003d 새로운 Comback ( "Excel.Application");
// 책 개방
도서 \u003d Excel. 통합 문서. 열다 ( 파일의 경로);

시트 \u003d 책. 워크 시트 (1);

// 책의 폐쇄
도서 ...에 닫기 (0);

// 폐쇄 엑셀 및 메모리 방출
뛰어나다 ...에 quit ();
Excel \u003d 0;

// - 옵션 2 -

// 책 개방
도서 \u003d 재료 객체 ( 파일의 경로);
// 원하는 시트에 위치합니다
시트 \u003d 책. 워크 시트 (1);

// 셀 값을 읽으십시오. 일반적으로 셀 회로가 있습니다.
성능 \u003d 시트. 세포 (피팅, 롤). 값;

// 책의 폐쇄
도서 ...에 신청. qui.t ();

에 대한 우회로 완성 된 모든 리프 Excel 라인은 다음과 같은 기술을 사용할 수 있습니다.

// -- 옵션 1 --
수량 \u003d 시트. 세포 (1, 1). SpecialCells (11). 열;
A2ROWS \u003d 1의 순환 횟수
성능 \u003d 시트. 세포 (피팅, 롤). 값.;
endcycle;

// - 옵션 2 -
팅커 \u003d 0;
진실은 순환하는 동안
tinetings \u003d + 1 숫자;
성능 \u003d 시트. 세포 (피팅, 롤). 값;
그것이 표시되지 않는 경우 (항목) 그런 다음
일시 정지;
종료;
endcycle;

모든 라인의 순차적 우회 대신에 당신은 모든 데이터를 배열로 언로드합니다 그와 함께 일하십시오. 이 접근법은 많은 양의 데이터를 읽을 때 더 빠릅니다.

allocolone \u003d 잎. 세포 (1, 1). SpecialCells (11). 기둥;
vgogostrok. \u003d 잎. 세포 (1, 1). SpecialCells (11). 열;

부위 \u003d 잎. 범위 (시트, 1, 1), 시트. 세포 (챌린지, allocolone));
데이터 \u003d 영역. 값. 부리다();

아래 표는 OLE를 통해 Excel에서 작업하기위한 가장 인기있는 속성과 방법을 보여줍니다.

행위 코드 논평
응용 프로그램과 함께 작동합니다
응용 프로그램 응용 프로그램 설치 창 뛰어나다 ...에 명백한 \u003d 거짓;
출력 모드 설정 (출력 / 출력하지 않음) 뛰어나다 ...에 DisplayAlerts. \u003d 거짓;
응용 프로그램을 닫습니다 뛰어나다 ...에 quit ();
책과 함께 일하고 있습니다
새 책 만들기 도서 \u003d Excel. 통합 문서. 더하다.();
기존 책을 여는 것 도서 \u003d Excel. 통합 문서. 열기 (이름 파일));
책의 보존 도서 ...에 Saveas (이름 파일));
책을 닫습니다 도서 ...에 닫기 (0);
시트와 함께 일하십시오
현재 시트의 설치 시트 \u003d 책. 워크 시트 (번호));
이름 설치 시트 ...에 이름 \u003d 이름;
보호 설치 시트 ...에 보호.();
보호를 제거합니다 시트 ...에 보호받지 못한다.();
설정 페이지 방향 시트 ...에 PageSetup. 방향 \u003d 2.; 1 - 책, 2 - 풍경
왼쪽 테두리 설치 시트 ...에 PageSetup. LeftMargin \u003d Excel. CentimeterStopoints (Santimeters.);
상단 테두리 설치 시트 ...에 PageSetup. TopMargin \u003d Excel. CentimeterStopoints (Santimeters.);
오른쪽 테두리 설정 시트 ...에 PageSetup. rightmargin \u003d Excel. CentimeterStopoints (Santimeters.);
아래쪽 테두리 설치 시트 ...에 PageSetup. bottommargin \u003d Excel. CentimeterStopoints (Santimeters.);
행, 스피커, 셀로 작업하십시오
열 너비 설정 시트 ...에 열. columnwidth \u003d 너비;
문자열 삭제 시트 ...에 행 (설정). 지우다.();
스피커 삭제 시트 ...에 열. 삭제 ();
셀 제거 시트 ...에 세포 (피팅, 롤). 지우다.();
설정 값 시트 ...에 세포 (피팅, 롤). 값 \u003d 값;
셀 결합 시트 ...에 범위 (시트, 셀, 롤), 시트. 셀 (RODKA1, ROLLS1)). 병합.();
글꼴 설치 시트 ...에 세포 (피팅, 롤). 폰트. 이름 \u003d Nameshrift.;
글꼴 크기 설치 시트 ...에 세포 (피팅, 롤). 폰트. 크기 \u003d 차원;
굵은 글꼴 설치 시트 ...에 세포 (피팅, 롤). 폰트. 굵게. = 1 ; 1 - 팻 글꼴, 0 - 정상
Cursiva의 설치 시트 ...에 세포 (피팅, 롤). 폰트. 이탤릭체 = 1 ; 1 - 이탤릭체, 0 - 정상
밑줄 친 글꼴 설치 시트 ...에 세포 (피팅, 롤). 폰트. 밑줄 = 2 ; 2 - 밑줄 친, 1 - 아니오

어떤 속성을 변경 해야하는지 또는 어떤 방법을 호출 할 수 있는지 확인하기 위해 매크로 뛰어나다. 필요한 작업을 사용하여 매크로를 녹음하면 VBA 기록 된 매크로에서 소프트웨어 코드를 볼 수 있습니다.

comsafearray를 사용합니다.

Excel에서 1C에서 많은 양의 데이터를 가속화하려면 객체를 사용할 수 있습니다. comsafearray....에 보조 구문의 정의에 따르면, COMSAFEARRAY - 다차원 배열을 통한 객체 쉘 SafeArray. com에서. SafeArray를 만들고 사용하여 COM 개체간에 데이터를 교환 할 수 있습니다. 간단히 말해서, 이것은 OLE 기술 응용 프로그램간에 교환하는 데 사용할 수있는 값의 배열입니다.

// ComsAfeArray 생성.
대규모 \u003d 새로운 comsafearray ( "vt_variant", alcolone, championship);
// comsafearray를 작성합니다.
에 대한 Page \u003d 0 ogoskost - 1 Cycle.
에 대한 count \u003d 0 allocolon - 1 cycle.
거대한 ...에 SetValue (Count, P.);
endcycle;
endcycle;
// comsafearray 값의 Excel 시트 영역을 할당합니다
시트 ...에 범위 (시트, 셀 (1, 1), 시트. 세포 (챌린지, VGAZHONOK)). 값 \u003d 대규모;

ADO를 통한 교환.

ADO를 통해 교환 할 때 Excel 파일은 SQL 쿼리와 연락 할 수있는 데이터베이스입니다. MS Excel을 설치하는 것은 필요하지는 않지만 액세스를 사용할 수있는 ODBC 드라이버는 필수적입니다. 사용 된 ODBC 드라이버는 파일에 연결 문자열을 지정할 때 정의됩니다. 일반적으로 필요한 드라이버가 이미 컴퓨터에 설치되어 있습니다.

OLE를 통해 ADO를 통해 눈에 띄게 더 빠른 교환을 통해 그러나 언로드 할 때 Excel 기능을 사용하여 셀을 설계하고, 페이지 게시, 수식의 작업 등을 사용할 수 없습니다.

하역:


연결 \u003d 새로운 Comback ( "adodb.connection");


화합물 ...에 ConnectionString \u003d "

| 데이터 소스 \u003d " + 파일 + ";
;
화합물 ...에 열다 (); // 화합물을 여는 것

// 팀에 대한 COM-객체를 만드는 것입니다
팀 \u003d 새로운 전투 ( "adodb.command");

// 텍스트 텍스트를 할당하여 표를 만듭니다
...에 CommandText \u003d. "Table [List1] (Column1 char (255), column2 날짜, column3 int, column4 float)";
...에 실행 (); // 명령 실행

// 텍스트 할당 명령을 사용하여 테이블 행을 추가합니다
...에 CommandText \u003d. "[LED1] (column1, column2, column3, column4) 값 ( 'abvgdeyo', '8/11/2017', '12345', '12345,6789')에 삽입";
팀. execute (); // 명령 실행

// 명령을 삭제하고 연결을 닫습니다
팀 \u003d 정의되지 않은;
화합물 ...에 닫기();
화합물 \u003d 불확실;

새 시트를 만들고 구조를 형성하려면 객체를 사용할 수 있습니다. adox.catalog.adox.table....에 이 경우 코드가 형식을 취합니다.

// 책을 사용하여 작업 할 COM 개체 만들기
도서 \u003d 새로운 전투 ( "adox.catalog");
도서 ...에 ActiveConnection \u003d 연결;

// 시트의 데이터 구조로 작업 할 COM 개체 작성
표 \u003d 새로운 COM 개체 ( "adox.table");
...에 이름 \u003d "list1";
...에 열. 추가 ( "Column1", 202);
...에 열. 추가 ( "column2", 7);
...에 열. 추가 ( "column3", 5);
...에 열. 추가 ( "Column4", 5);

// 설명 된 구조로 책에 시트를 만듭니다.
도서 ...에 테이블. 추가 (표);
표 \u003d 정의되지 않은;
book \u003d undefined;

방법에 주어진 예제에서

...에 열. aspend.( "column1", 202);

두 번째 매개 변수는 열의 유형을 나타냅니다. 옵션은 선택 사항입니다. 여기서 열 유형의 일부 값이 있습니다.

  • 5 - Addouble;
  • 6 - ADCurrency;
  • 7 - 덧셈;
  • 11 - adboolean;
  • 202 - advarwchar;
  • 203 - adlongvarwchar.

독서:

// 연결을위한 COM 개체 작성
연결 \u003d 새로운 Comback ( "adodb.connection");

// 연결 문자열을 설정합니다
화합물 ...에 ConnectionString \u003d "
| Provider \u003d Microsoft.ace.oledb.12.0;
| 데이터 소스 \u003d " + 파일 + ";
| 확장 된 속성 \u003d»»엑셀 12.0 XML; HDR \u003d 예»» ";
화합물 ...에 열다 (); // 화합물을 여는 것

// 샘플링을위한 COM 개체 생성
샘플링 \u003d 새로운 combordset ( "adodb.recordset");
텍스트 요청 \u003d. "선택 *에서 [Sheet1 $]";

// 실행 요청
견본 ...에 열기 (텍스트 화면, 연결);

// 바이 패스 샘플링
아직 샘플이 아닙니다. eof ()주기
Vaccinecoloneque1 \u003d 샘플. 필드. 항목 ( "column1"). 값. ; // 열의 이름으로 호소합니다
Vaccinecoloneque2 \u003d 샘플. 필드. 항목 (0). 값; // 열 색인에 의한 호소
견본 ...에 movenEnt ();
endcycle;

견본 ...에 닫기 ();
샘플링 \u003d undefined;
화합물 ...에 닫기 ();
화합물 \u003d 정의되지 않은;

연결 문자열에서 매개 변수입니다 HDR. 시트의 첫 번째 줄이 어떻게인지되는지 결정합니다. 옵션이 가능합니다.

  • 예 - 첫 번째 줄은 열의 이름으로 인식됩니다. 이름과 열 인덱스로 값과 연락 할 수 있습니다.
  • 아니요 - 첫 번째 줄은 데이터로 인식됩니다. 열 인덱스 만 연락 할 수 있습니다.

예제에서 몇 개의 ADO 객체 만 고려됩니다. ADO 객체 모델은 다음 객체로 구성됩니다.

  • 연결;
  • 명령;
  • 레코드 세트;
  • 기록;
  • 필드;
  • 흐름;
  • 오류;
  • 매개 변수;
  • 속성.

프로그래밍없이 언로드

Excel에서 1C에서 데이터를 저장하려면 프로그래밍에 의존하는 것이 항상 권장되는 것은 아닙니다. 엔터프라이즈 모드에서 사용자는 언로드에 필요한 데이터를 표시 할 수 있으며 프로그래밍없이 Excel에 저장할 수 있습니다.

표 형식을 저장하려면 (예 : 보고서 결과) 명령을 호출 할 수 있습니다. 저장 또는 다른 이름으로 저장… 주 메뉴.

열리는 창에서 저장된 파일의 디렉토리, 이름 및 형식을 선택해야합니다.

이러한 동적 목록 (예 : 명명법 목록)을 저장하려면 필요합니다.

  1. 명령을 사용하여 테이블 형식으로 데이터를 표시합니다 조차 ⇒ 목록 ...;
  2. 표 형식 문서를 필요한 형식으로 저장하십시오.

모든 버전의 1C 시스템에서 테이블 문서에서 얻은 데이터를 사용하여 추가 작업을 위해 XLS (x) 형식으로 저장할 수 있습니다.

모두 좋을 것이지만 Excel-e에서 열면 사용자는 테이블에 뭔가 잘못되었음을 이해합니다. 예, 책의 책의 라벨이 없습니다. %))

그래서 그것은 7 번째 버전의 1c에 있었고 8 번째로 꼬인 됨, 예, 진행 상황이 발생합니다. 8 ke에는 형식으로 저장할 수 있습니다. xLSX, 최신 Excel 버전의 기본 형식입니다.

문제를 해결하기 위해 몇 가지 간단한 조작이 있지만 모든 사용자의 마음에 오는 첫 번째 일은 테이블을 다른 형식으로 건조시키는 것입니다. 그러나 필요한 결과가 없지만 새 책으로 복사본 붙여 넣기를 시작합니다. 뛰어나다.
고급 사용자와 마찬가지로 다른 옵션이 있습니다. Excel-i 및 추가로 확인 표시가 "시트의 레이블 표시"를 입력하십시오. 평평한 테이블의 형태로 1c에서 얻은 데이터의 빈번한 처리 및 요약 테이블의 형태로 추가 데이터 분석 및 Excel에서 데이터를 나타내는 다른 방법으로 1c의 데이터 분석을 자주 처리하는 것이 정확하지만, 루틴입니다.

그 자체로, 그것은 또한 틱 주위를 달리고, 인터넷의 넓이에 rummanage, 예를 들어, 다른 개발을보고, 단순한 것으로 밝혀졌습니다. , 누군가는 Crutzown이지만, 시트 레이블을 표시하는 문제를 해결하는 자동화 메커니즘을 논쟁하지는 않습니다.

필요한 것은 Excel 창의 두 가지 속성을 사용하는 것입니다.

DisplayWorkbookTabs // 책의 책갈피의 책갈피의 표시 Tabratio // 워크 스크립트의 너비의 비율은 창 스크롤의 수평 스트립의 너비에 대한 비율 (0 (0)과 1 사이의 숫자로 기본값이 있습니다. 값은 0.6)

tabdocumen.ship-up (전체 파일, 패키지 대량 dogs.xls); Excel \u003d 새로운 Comback ( "Excel.Application"); excel.workbooks.open (가득 차있는); excel.visible \u003d 0; Excel.ActiveWendow.DisplayWorkBookTabs \u003d 1; Excel.ActiveWindow.Tabratio \u003d 0.6; FULLNAME \u003d EXCEL.ActiveWorkBook.FullName; excel.displayalerts \u003d false; Excel.ActiveWorkbook.Saveas (FullName, 18); // 18 - XLS 97-2003; 51 - XLSX 2007-2013 //excel.visible \u003d 1; // 책을 가지고 일 해야하는 경우
//excel.application.quit () // 방금 외출하면

tabdocumen.ship-up (전체, "xls"); Excel \u003d 객체 생성 ( "Excel.Application"); excel.workbooks.open (가득 차있는); excel.visible \u003d 0; Excel.ActiveWendow.DisplayWorkBookTabs \u003d 1; Excel.ActiveWindow.Tabratio \u003d 0.6; FULLNAME \u003d EXCEL.ActiveWorkBook.FullName; excel.displayalerts \u003d false; Excel.ActiveWorkbook.Saveas (FullName, 18); // 18 - XLS 97-2003; 51 - XLSX 2007-2013 //excel.visible \u003d 1; // 책을 가지고 일 해야하는 경우
//excel.application.quit () // 방금 외출하면

모든 버전의 1C 시스템에서 테이블 문서에서 얻은 데이터를 사용하여 추가 작업을 위해 XLS (x) 형식으로 저장할 수 있습니다.

모두 좋을 것이지만 Excel-e에서 열면 사용자는 테이블에 뭔가 잘못되었음을 이해합니다. 예, 책의 책의 라벨이 없습니다. %))

그래서 그것은 7 번째 버전의 1c에 있었고 8 번째로 꼬인 됨, 예, 진행 상황이 발생합니다. 8 ke에는 형식으로 저장할 수 있습니다. xLSX, 최신 Excel 버전의 기본 형식입니다.

문제를 해결하기 위해 몇 가지 간단한 조작이 있지만 모든 사용자의 마음에 오는 첫 번째 일은 테이블을 다른 형식으로 건조시키는 것입니다. 그러나 필요한 결과가 없지만 새 책으로 복사본 붙여 넣기를 시작합니다. 뛰어나다.
고급 사용자와 마찬가지로 다른 옵션이 있습니다. Excel-i 및 추가로 확인 표시가 "시트의 레이블 표시"를 입력하십시오. 평평한 테이블의 형태로 1c에서 얻은 데이터의 빈번한 처리 및 요약 테이블의 형태로 추가 데이터 분석 및 Excel에서 데이터를 나타내는 다른 방법으로 1c의 데이터 분석을 자주 처리하는 것이 정확하지만, 루틴입니다.

그 자체로, 그것은 또한 틱 주위를 달리고, 인터넷의 넓이에 rummanage, 예를 들어, 다른 개발을보고, 단순한 것으로 밝혀졌습니다. , 누군가는 Crutzown이지만, 시트 레이블을 표시하는 문제를 해결하는 자동화 메커니즘을 논쟁하지는 않습니다.

필요한 것은 Excel 창의 두 가지 속성을 사용하는 것입니다.

DisplayWorkbookTabs // 책의 책갈피의 책갈피의 표시 Tabratio // 워크 스크립트의 너비의 비율은 창 스크롤의 수평 스트립의 너비에 대한 비율 (0 (0)과 1 사이의 숫자로 기본값이 있습니다. 값은 0.6)

tabdocumen.ship-up (전체 파일, 패키지 대량 dogs.xls); Excel \u003d 새로운 Comback ( "Excel.Application"); excel.workbooks.open (가득 차있는); excel.visible \u003d 0; Excel.ActiveWendow.DisplayWorkBookTabs \u003d 1; Excel.ActiveWindow.Tabratio \u003d 0.6; FULLNAME \u003d EXCEL.ActiveWorkBook.FullName; excel.displayalerts \u003d false; Excel.ActiveWorkbook.Saveas (FullName, 18); // 18 - XLS 97-2003; 51 - XLSX 2007-2013 //excel.visible \u003d 1; // 책을 가지고 일 해야하는 경우
//excel.application.quit () // 방금 외출하면

tabdocumen.ship-up (전체, "xls"); Excel \u003d 객체 생성 ( "Excel.Application"); excel.workbooks.open (가득 차있는); excel.visible \u003d 0; Excel.ActiveWendow.DisplayWorkBookTabs \u003d 1; Excel.ActiveWindow.Tabratio \u003d 0.6; FULLNAME \u003d EXCEL.ActiveWorkBook.FullName; excel.displayalerts \u003d false; Excel.ActiveWorkbook.Saveas (FullName, 18); // 18 - XLS 97-2003; 51 - XLSX 2007-2013 //excel.visible \u003d 1; // 책을 가지고 일 해야하는 경우
//excel.application.quit () // 방금 외출하면

공유