programing

SQL Server 데이터베이스로 Excel 스프레드시트 열 가져오기

topblog 2023. 4. 13. 20:29
반응형

SQL Server 데이터베이스로 Excel 스프레드시트 열 가져오기

SQL Server 2008 데이터베이스 테이블로 선택 열을 Import하는 Excel 스프레드시트가 있습니다.마법사는 이 옵션을 제공하지 않았습니다.

쉬운 코드 옵션이 있습니까?

SQL Server 2005 데이터베이스에 연결되면 Object Explorer 창에서 테이블을 가져올 데이터베이스를 마우스 오른쪽 버튼으로 클릭합니다.[태스크] -> [데이터 Import]를 선택합니다.이것은 간단한 도구이며, 수신 데이터를 적절한 표로 '매핑'할 수 있습니다.필요할 때 스크립트를 저장하여 다시 실행할 수 있습니다.

Microsoft 에서는, 다음의 몇개의 방법을 추천합니다.

  • SQL Server 데이터 변환 서비스(DTS)
  • Microsoft SQL Server 2005 통합 서비스(SSIS)
  • SQL Server 링크 서버
  • SQL Server 분산 쿼리
  • ActiveX Data Objects(ADO) 및 Microsoft OLE DB Provider for SQL Server
  • Jet 4.0용 ADO 및 Microsoft OLE DB 공급자

마법사(DTS)가 작동하지 않는 경우(필요하다고 생각합니다), 기본적으로 다음과 같은 작업을 수행하는 것을 권장하는 http://www.devasp.net/net/articles/display/771.html과 같은 방법을 시도해 보십시오.

INSERT INTO [tblTemp] ([Column1], [Column2], [Column3], [Column4])

SELECT A.[Column1], A.[Column2], A.[Column3], A.[Column4]
FROM OPENROWSET 
('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\Excel.xls;HDR=YES', 'select * from [Sheet1$]') AS A;

이것은 먼 길처럼 들릴 수 있지만, Excel을 사용하여 Query Analyzer에 붙여넣어 테이블을 작성할 수 있는 INSERT SQL 코드를 생성하는 것을 검토할 수 있습니다.

서버에 Excel 파일이 없기 때문에 마법사를 사용할 수 없는 경우 잘 작동합니다.

다음과 같이 OPENROWSET을 사용할 수 있습니다.

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
  'Excel 8.0;IMEX=1;HDR=NO;DATABASE=C:\FILE.xls', 'Select * from [Sheet1$]'

경로가 로컬 머신이 아닌 서버상의 경로인지 확인합니다.

go
sp_configure 'show advanced options',1  
reconfigure with override  
go  
sp_configure 'Ad Hoc Distributed Queries',1  
reconfigure with override  
go
SELECT * into temptable
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
                'Excel 8.0;Database=C:\Documents and Settings\abhisharma\Desktop\exl\ImportExcel2SQLServer\ImportExcel2SQLServer\example.xls;IMEX=1',
                'SELECT * FROM [Sheet1$]')

select * from temptable

또 다른 옵션은 Excel에서 VBA를 사용하여 매크로를 작성하여 스프레드시트 데이터를 해석하고 SQL에 쓰는 것입니다.

예를 들면, http://www.ozgrid.com/forum/showthread.php?t=26621&page=1 입니다.

Sub InsertARecord() 
Dim cnt As ADODB.Connection 
Dim rst As ADODB.Recordset 
Dim stCon As String, stSQL As String 
Set cnt = New ADODB.Connection 
Set rst = New ADODB.Recordset 

stCon = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=JOEY" 
cnt.ConnectionString = stCon 
stSQL = "INSERT INTO MyTable (Price)" 
stSQL = stSQL & "VALUES (500)" 

cnt.Open 
rst.Open stSQL, cnt, adOpenStatic, adLockReadOnly, adCmdText 

If CBool(rst.State And adStateOpen) = True Then rst.Close 
Set rst = Nothing 
If CBool(cnt.State And adStateOpen) = True Then cnt.Close 
Set cnt = Nothing 

End Sub

'wiz'라고 하면 'SQL Server Import and Export Wizard'를 말하는 것 같습니다.(또한 저는 초보라서 대부분의 질문은 물론 대부분의 답변도 이해할 수 없습니다만, 이번 것은 알 수 있을 것 같습니다.)스프레드시트나 복사본을 가져올 수 없는 경우 가져오지 않을 열을 삭제한 다음 마법사를 사용하십시오.

항상 필요한 기능을 이용할 수 있었고 SQL Server 2000에서만 사용할 수 있습니다(다른 버전이 어떻게 다른지 잘 모르겠습니다).

편집: 실제로 지금 보고 있는데 기존 테이블의 어떤 행에 매핑할 것인지 선택할 수 있는 것 같습니다.'Select Source Tables and Views' 화면에서 사용 중인 데이터시트를 확인하고 'Destination'을 선택한 다음 'Edit...' 버튼을 클릭합니다.여기서 Excel 열과 매핑할 테이블 열을 선택할 수 있습니다.

검증을 포함한 데스크톱인터페이스를 갖춘 비주얼 툴이 필요한 경우.이 Excel 툴이 마음에 드실 겁니다.또한 이 도구를 사용하여 여러 사용자 데이터 편집 태스크를 생성하거나 임의의 원본에서 SQL 서버에 데이터를 붙여넣을 수도 있습니다.

Excel 스프레드시트를 검증하고 SQL Server 데이터베이스로 Import하는 방법:

http://leansoftware.net/en-us/help/excel-database-tasks/worked-examples/how-to-import-excel-spreadsheet-to-sql-server-data.aspx

Microsoft Access도 다른 옵션입니다.Excel 스프레드시트를 Import하여 ODBC를 통해 SQL Server 데이터베이스 테이블에 링크하는 액세스 데이터베이스를 머신에 로컬로 배치할 수 있습니다.

그런 다음 Excel 스프레드시트의 데이터를 SQL Server 테이블에 추가하는 액세스 조회를 설계할 수 있습니다.

지금까지 사용한 최고의 툴은 http://tools.perceptus.ca/text-wiz.php?ops=7입니다.해 보셨나요?

도움이 될 것 같아요.

http://social.msdn.microsoft.com/Forums/en-US/sqlgetstarted/thread/78f8e980-0bb6-4a48-b1b1-5f65bca1d511 를 참조해 주세요.

가져오기 마법사에서 이 옵션을 제공합니다.가져올 데이터에 대한 쿼리를 직접 작성하는 옵션을 사용하거나 데이터 복사 옵션을 사용하여 "매핑 편집" 단추를 사용하여 가져오지 않을 열을 무시할 수 있습니다.

Excel + SQLCMD + Perl = exceltomssqlinsert

Excel을 MSQL db의 프런트 엔드로 사용할 수 있습니다.생성된 각 SQL 삽입 파일의 선두에 있는 잘라내기 테이블을 확인합니다.

DTS(현재는 SQL 서버 가져오기 및 내보내기 마법사)를 사용했습니다. 튜토리얼은 SQL 2008 및 Excel 2010(14.0)에서도 유효했습니다.

이게 도움이 됐으면 좋겠다

-D

먼저 Import Wizard의 32비트 버전을 사용해 보십시오.이것은 지원되는 Import 형식을 훨씬 더 많이 보여줍니다.

배경:모두 Office(Runtimes Engine) 설치에 따라 달라집니다.

Office 2007 이후가 설치되어 있지 않은 경우 Import Wizard(32비트)에서는 Excel 97-2003(.xls) 파일만 Import할 수 있습니다.

Office 2010 및 geater(권장되지 않는 64비트)가 설치되어 있는 경우 Import Wizard는 Excel 2007+(.xlsx) 파일도 지원합니다.

런타임의 개요에 대해서는, 「Microsoft」를 참조해 주세요.ACE.OLEDB.12.0' 공급자가 로컬 시스템에 등록되어 있지 않습니다.

언급URL : https://stackoverflow.com/questions/375991/import-excel-spreadsheet-columns-into-sql-server-database

반응형