FILE 엑셀(EXCEL) 파일 읽고 쓰기,AUTOMATION 이용
2008.05.10 16:44
2011년 01월 07월에 새로운 엑셀관련 라이브러리가 나왔습니다.
무지 편해진거 같네요.
http://www.codeproject.com/KB/office/ExcelFormat.aspx
============================================================================
http://www.codeguru.com/cpp/data/mfc_database/microsoftexcel/article.php/c11745/ 의 내용에서 필요한 부분만 골랐습니다.
전체소스 : WATExcelRW_src.zip
실행파일 : WATExcelRW_exe.zip
필요한 파일 4개이다.
XLEzAutomation.h
XLEzAutomation.cpp
XLAutomation.h
XLAutomation.cpp
함수를 구현할 파일에 한 줄을 추가한다.
#include "XLEzAutomation.h"
엑셀 파일 기록하기(파일이 존재하지 않을 경우 새로운 파일이 생성된다.)
void CWATExcelRWDlg::OnBnClickedButton1() CXLEzAutomation XL(FALSE); // FALSE: 처리 과정을 화면에 보이지 않는다
XL.ReleaseExcel(); |
엑셀파일 읽어오기
char chThisPath[_MAX_PATH]; UpdateData(TRUE); GetModuleFileName( NULL, chThisPath, _MAX_PATH); CXLEzAutomation XL(FALSE); // FALSE: 처리 과정을 화면에 보이지 않는다 XL.OpenExcelFile(strThisPath); strData +="\n(4,4) = "; strData +="\n(7,4) = "; XL.ReleaseExcel(); |
- [2011/04/21] 엑셀 문자열 기준으로 순위 변동 표시하기 (8451)
댓글 5
-
레드수샤
2008.10.11 10:55
-
WhiteAT
2008.10.11 12:32
전에 vista 에 office2003 을 작업한 적이 있는데 그냥하니 안되어서 몇가지 프로그램을 패치한 경험이 있습니다.
(소비자 pc가 vista 여서 억지로 해서 완료했는데, vista 아직 무섭습니다.ㅡㅡ;)
일단 아래 주소를 참조 하시구요~~.
http://support.microsoft.com/kb/948615/ko
보안과 호환성 문제 때문에 에러를 표시한다고 하네요. 보시고 해보세요.
(전 아직 xp 라서 테스트 해 드릴수가 없네요^^)
==================================================================================================
Excel 2007에서 파일을 열면 파일 형식이 파일 이름 확장명에서 지정한 형식과 다르다는 경고가 나타난다
기술 자료 ID : 948615 마지막 검토 : 2008년 5월 23일 금요일 수정 : 1.1 중요 이 문서에서는 레지스트리 수정 방법을 설명합니다. 레지스트리를 수정하기 전에 해당 레지스트리를 백업하는 것이 좋습니다. 또한 문제가 발생할 경우 레지스트리를 복원하는 방법을 알고 있어야 합니다. 레지스트리 백업, 복원 및 수정 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.322756 (http://support.microsoft.com/kb/322756/) Windows XP 및 Windows Server 2003에서 레지스트리를 백업, 편집 및 복원하는 방법현상
Microsoft Office Excel 2007에서 파일 확장명과 일치하지 않는 내용이 포함된 파일을 열면 다음과 같은 경고 메시지가 나타납니다.참고 name 자리 표시자는 파일 이름이고 ext 자리 표시자는 Excel 2007에서 여는 파일의 파일 이름 확장명입니다.원인
이 경고 메시지는 Excel 2007에 추가된 사용자 알림 기능으로, 파일의 실제 내용과 파일 이름 확장명 간의 비호환성 때문에 발생할 수 있는 예기치 않은 문제를 방지하는 데 도움이 됩니다.해결 방법
파일의 원본을 신뢰할 수 있는 경우 경고 메시지에서 예를 누르십시오.
사용자 알림 기능을 제어하려면 다음 방법 중 하나를 사용하십시오.
중요 이 단계를 수행하면 보안 위험이 커질 수 있습니다. 또한 컴퓨터나 네트워크가 악의적인 사용자나 바이러스와 같은 악성 소프트웨어의 공격에 더 취약해질 수 있습니다. 프로그램이 원래 설계된 대로 작동하도록 설정하거나 특정 프로그램 기능을 구현하는 데 이 문서에서 설명하는 단계를 사용하십시오. 이 단계를 수행하기 전에 먼저 특정 환경에서 이 단계를 구현하는 것과 관련된 위험을 평가하는 것이 좋습니다. 이 단계를 구현하기로 한 경우 적절한 시스템 보호 조치를 추가로 취하십시오. 이 단계는 정말 필요한 경우에만 사용하는 것이 좋습니다.
기본적으로 사용자는 경고 메시지가 나타나면 파일을 열지 여부를 결정할 수 있습니다. 그러나 그룹 정책 설정 또는 레지스트리 편집기를 사용하여 사용자 알림 기능을 다음 수준 중 하나로 설정할 수도 있습니다.? 경고 메시지를 표시하고 파일을 열지 않습니다. ? 경고 메시지를 표시하고 사용자가 파일을 열지 여부를 결정할 수 있습니다(기본 설정). ? 파일을 열고 경고 메시지를 표시하지 않습니다. 1. 다음 Microsoft 다운로드 센터 웹 사이트에서 2007 Office system 관리 템플릿 파일(ADM, ADMX, ADML) 및 Office 사용자 지정 도구를 다운로드합니다. http://www.microsoft.com/downloads/thankyou.aspx?familyId=92d8519a-e143-4aee-8f7a-e4bbaeba13e7&displaylang=ko (http://www.microsoft.com/downloads/thankyou.aspx?familyId=92d8519a-e143-4aee-8f7a-e4bbaeba13e7&displaylang=ko)2. 관리 템플릿 파일을 폴더로 추출합니다. 이렇게 하려면 다음과 같이 하십시오. a. AdminTemplates.exe 파일을 두 번 누릅니다. b. Microsoft 소프트웨어 사용 조건에 동의한 다음 Continue를 누릅니다. c. 추출한 파일을 저장할 폴더를 선택한 다음 확인을 누릅니다. d. 파일이 성공적으로 추출되면 확인을 누릅니다. 3. 그룹 정책 개체 편집기를 엽니다.
그룹 정책 개체 편집기를 여는 방법에 대한 자세한 내용은 다음 Microsoft TechNet 웹 사이트를 참조하십시오.http://technet2.microsoft.com/windowsserver/ko/library/03ec122f-fc65-496e-ad0d-4fd22a96a4bb1042.mspx?mfr=true (http://technet2.microsoft.com/windowsserver/ko/library/03ec122f-fc65-496e-ad0d-4fd22a96a4bb1042.mspx?mfr=true)4. 사용자 구성을 확장합니다. 5. 관리 템플릿을 마우스 오른쪽 단추로 누른 다음 템플릿 추가/제거를 누릅니다. 6. 템플릿 추가/제거 대화 상자에서 추가를 누릅니다. 7. 2c단계에서 추출한 관리 템플릿이 있는 폴더로 이동합니다. 8. Excel12.adm 파일을 누른 다음 열기를 누릅니다. Excel12.adm 파일은 2c단계에서 관리 템플릿을 추출한 다음 폴더에 있습니다. \ADM\languageID참고 한국어 관리 템플릿 파일은 ko-kr languageID 폴더에 있습니다.9. 닫기를 눌러 템플릿 추가/제거 대화 상자를 닫습니다. 10. 관리 템플릿, Microsoft Office Excel 2007, Excel 옵션을 차례로 확장한 다음 보안을 누릅니다. 11. 확장 탭의 설정에서 파일 확장명을 파일 형식에 맞춤을 두 번 누릅니다. 12. 설정 탭에서 사용을 누르고 파일 확장명을 파일 형식에 맞춤 드롭다운 목록에서 다음 중 하나를 누른 다음 확인을 누릅니다. ? 다른 형식 허용 ? 다른 형식을 허용하고 경고 표시 ? 항상 파일 형식 일치 13. 그룹 정책 개체 편집기를 닫습니다.
경고 레지스트리 편집기나 다른 방법을 사용하여 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 이러한 문제를 해결하기 위해 운영 체제를 다시 설치해야 할 수도 있습니다. Microsoft는 이러한 문제의 해결을 보증하지 않습니다. 레지스트리 수정에 따른 모든 책임은 사용자에게 있습니다.1. Excel 2007을 종료합니다. 2. 레지스트리 편집기를 시작합니다. ? Windows Vista에서는 시작 을 누르고 검색 시작 상자에 regedit를 입력한 다음 Enter 키를 누릅니다.
관리자 암호나 확인을 요청하는 메시지가 나타나면 암호를 입력하거나 계속을 누릅니다.
? Windows XP의 경우 시작, 실행을 차례로 누르고 regedit를 입력한 다음 확인을 누릅니다. 3. 다음 레지스트리 하위 키를 찾아서 누릅니다. HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security4. 편집 메뉴에서 새로 만들기를 가리킨 다음 DWORD 값을 누릅니다. 5. ExtensionHardening을 입력한 다음 Enter 키를 누릅니다. 6. ExtensionHardening을 마우스 오른쪽 단추로 누른 다음 수정을 누릅니다. 7. 값 데이터 상자에 값 데이터를 입력한 다음 확인을 누릅니다.
다음 목록에서는 ExtensionHardening 설정에 적합한 값 데이터 설정을 보여 줍니다.? 0: 파일 이름 확장명과 파일 형식을 검사하지 않고 경고 메시지 기능을 무시합니다. ? 1: 파일 이름 확장명과 파일 형식을 검사합니다. 파일 이름 확장명과 파일 형식이 일치하지 않으면 경고 메시지를 표시합니다. ? 2: 파일 이름 확장명과 파일 형식을 검사합니다. 파일 이름 확장명과 파일 형식이 일치하지 않으면 파일을 열지 않습니다. 8. 파일 메뉴에서 끝내기를 눌러 레지스트리 편집기를 종료합니다. 현재 상태
이것은 의도적으로 설계된 동작입니다.추가 정보
키워드:
kbexpertiseinter kbconversion kbopenfile kberrmsg kbtshoot kbprb KB948615 -
조윤식
2017.10.09 17:41
안녕하세요, 올리시는 자료 자주 열람하고 있습니다.
엑셀 파일 작성하는 클래스 파일이 필요하여 참고하였습니다.
위 파일 기록하고 읽어오는 중에 필요한 식별자나 클래스 등등은 별도로 작성해야 하는 건가요? 예를들면 CWATExcelRWDlg 등의 클래스 파일을 헤더파일과 함께 따로 작성해야 하나요?
또한 updatedata 나 m_strFileName 등의 식별자를 제 컴퓨터에서 인식하지 못한다고 합니다. 이 또한 별도로 작성해야 하나요??
아직 C++/MFC 사용에 미숙하여 첨부 클래스 사용에 혼란이 와 이렇게 질문 드리게 되었습니다.
위 질문에 답변 주시면 감사하겠습니다. ^^
-
WhiteAT
2017.10.12 22:02
안녕하세요
화이트앳입니다.
MFC 에서는 말씀하신 헤더파일과 UpdateData 등을 기본적으로 제공합니다.^^
http://whiteat.com/WhiteAT_c/7530 을 참조하시어
MFC 의 간단한 기능 먼저 해보시는게 좋을거 같습니다~
감사합니다.
-
WhiteAT
2017.10.12 22:12
파일 링크가 깨져 있어서 새로 올려 드렸습니다.^^
위의 소스를 이용하다가 의문점이 발생하여 이렇게 글 남깁니다.
위의 Excel 만들기 소스를 이용하여 엑셀파일을 생성하고, 엑셀파일을 열고자 하면 아래와 같은 메시지가 뜹니다.
'열려는 파일 'Test.xls'으 ㅣ형식이 파일 확장명에서 지정한 형식과 다릅니다...' 라고요.
물론 파일이 엑셀에서 열리기는 하는데, 메시지 박스가 뜨니, 왠지 문제가 있어 보일것 같아서 저걸 없애고 싶습니다.
개발환경은 아래와 같습니다.
OS : Vista
Office : Office 2007
VC : Visutal Studio 2008 SP1
엑셀 파일에 한글을 입력하였습니다.
도움 기다리겠습니다.
감사합니다.