2010-04-07 5 views
3

최종적으로 Excel 스프레드 시트로 이동해야하는 데이터베이스에 대해 여러 가지 보고서를 작성했습니다.Excel 파일로 XML 파일

처음에는 텍스트 보고서를 만들었지 만 텍스트를 스프레드 시트로 변환하는 단계는 조금 번거 롭습니다. 스프레드 시트에 텍스트를 가져 오는 데 너무 많은 단계가 있었으며 Excel에서 여러 행의 텍스트 행을 개별 행으로 가져 왔습니다 (잘못된 경우).

현재 "xls"확장자로 파일을 저장하는 간단한 XML을 생성 중입니다. 이것은 더 잘 작동하지만 파일을 열 때마다 사용자에게 XML import dialogue을 묻는 Excel의 문제가 있습니다. 그리고 메모를 추가하거나 레이아웃을 파일로 변경하면 새 파일을 저장해야합니다 (거의 확실합니다). 하고있다).

샘플 "XLS"파일 :

<?xml version="1.0" standalone="yes"?>    
<report_rows>          
    <row>            
    <NAME>Test Data</NAME> 
    <COUNT>345</COUNT>     
    </row> 
    <!-- many more row elements... --> 
</report_rows> 

는 가져올 파일을 처리하는 방법을 Excel로 암시하는 파일에 마크 업을 추가하는 방법은 없나요? 이상적으로 최종 사용자는 Excel에서 직접 만든 스프레드 시트처럼 파일을 열고 저장할 수 있어야합니다.

이것도 가능합니까?

UPDATE :

우리는 여기에 Office 2003을 실행하고 있습니다.

업데이트 : XML은 SQLPLUS 스크립트에서 생성되는

, 아니 옵션은 C 번호를 사용하지 않으려면/여기 NET..

+0

XML을 Office XML 파일 형식으로 생성 할 수 있습니까? 그래도 Excel 2007 이상이 필요합니다. –

+0

@ 리차드 모건 : 저는 그 아이디어가 마음에 들지만 아직 Office 2003을 실행 중입니다. – FrustratedWithFormsDesigner

답변

1

Excel 2003 및 2007의 경우 SpreadSheet XML (XMLSS)을 사용하십시오. 쉽게 찾을 수 있으며 많은 지원과 라이브러리가 있습니다. 또한 이미 XML을 생성 중이므로 변환 스타일 시트를 만들거나 코드를 수정하기 만하면됩니다. XMLSS를 만들 때 Excel이 필요하지 않습니다.

+0

C#을 사용하는 경우이 문제에 대한 자세한 내용은 다음을 참조하십시오. http://stackoverflow.com/questions/151005/create-excel-xls-and-xlsx-file-from-c –

+0

@ Richard Morgan : Nope 출력은 sqlplus 스크립트에서 가져옵니다. – FrustratedWithFormsDesigner

+0

실제로 Richard Morgan의 링크는 좋은 참고 자료입니다. 좋은 리소스 링크가 포함되어 있습니다. – AMissico

0

이전에이 문제가 발생하여 여러 XML 파일을 Excel 파일로 변환하는 가장 좋은 방법은 Visual Basic (VBA) 매크로를 사용하는 것입니다. VBA 사용 경험이 거의 없거나 전혀없는 경우 http://www.anthony-vba.kefra.com/index.htm과 같은 온라인 자습서와 리소스가 많이 있습니다.

'Create an instance of the FileSystemObject 
Set objFSO = CreateObject("Scripting.FileSystemObject") 

'Get the folder object 
Set objFolder = objFSO.GetFolder("C:\Sem-o_Archive\XML") 

'loops through each file in the directory and prints their names and path 
For Each objFile In objFolder.Files 
cutting = Left(objFile.name, 15) 
Workbooks.Add 
ActiveWorkbook.XmlImport URL:="C:\path\to\files\" & objFile.name,  ImportMap:=Nothing, _ 
        Overwrite:=True, Destination:=range("$A$1") 
ActiveWorkbook.SaveAs "C:\path\to\save\location" & cutting & "xls" 
ActiveWorkbook.Close True 
Next objFile 

위의 코드는, 그러나 그것은 xml 파일의 이름이 포함되도록 절삭 변수를 수정해야합니다이 코드를 사용하여, 지정된 폴더에있는 모든 XML 파일을 변환하고 지정된 폴더에 저장합니다.

희망이 도움이되었습니다.