CASE 1: Получение данных из файла Excel в SQL Server
Пожалуйста, следуйте инструкциям ниже:
- 1) Загрузите 64-разрядную версию (AccessDatabaseEngine_X64.exe) с «Microsoft Access Database Engine 2010 Reistributable», URL-адреса ниже:
http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en&WT.mc_id=soc-n-[TR]-loc-[Services]-[farukc]
- 2) Установите AccessDatabaseEngine_X64.exe на вашем компьютере с SQL Server.
- 3) Откройте новое «Окно запросов» в SQL Server Management Studio (SSMS) после подключения к ядру SQL Server и введите приведенные ниже команды T-SQL.:
USE [master]
GO
sp_configure 'show advanced options', 1
GO
RECONFIGURE WITH OverRide
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE WITH OverRide
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
GO
- 4) Теперь попробуйте выполнить запрос ниже :
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\temp\test.xls', [Sheet1$])
или
DECLARE @RC int
DECLARE @server nvarchar(128)
DECLARE @srvproduct nvarchar(128)
DECLARE @provider nvarchar(128)
DECLARE @datasrc nvarchar(4000)
DECLARE @location nvarchar(4000)
DECLARE @provstr nvarchar(4000)
DECLARE @catalog nvarchar(128)
-- Set parameter values
SET @server = 'EXCELLINK'
SET @srvproduct = 'Excel'
SET @provider = 'Microsoft.ACE.OLEDB.12.0'
SET @datasrc = 'D:\Desktop\text.xlsx'
SET @provstr = 'Excel 12.0'
EXEC @RC = [master].[dbo].[sp_addlinkedserver] @server, @srvproduct, @provider,
@datasrc, @location, @provstr, @catalog
USE kfi_geo;
GO
SELECT * FROM EXCELLINK...[Sheet1$];
GO
CASE 2: Извлечение данных из файла Excel в .NET приложении
- 1) Скачать 64bit версию (AccessDatabaseEngine_X64.exe) of our "Microsoft Access Database Engine 2010 Redistributable" from the URL below :
http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en
- 2) Установите AccessDatabaseEngine_X64.exe на вашем компьютере x64 (вероятно, это будет ваш веб-сервер, на котором будет размещаться ваше приложение ASP.NET в 64-битном пуле приложений, или сервер, на котором вы будете запускать службу .NET Windows как 64-битную и т. Д.)
- 3) Используйте System.Data.OleDBConnection со строкой подключения ниже:
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\\temp\\test.xls;Extended Properties=\"Excel 12.0;HDR=YES;\"");
P.S 1. Если вы собираетесь развернуть это приложение на компьютере без поставщика ACE OLEDB, не забудьте, что вам нужно установить «Microsoft Access Database Engine 2010 Redistributable» на целевой компьютер.
P.S 2. Если на компьютере установлен 32-разрядный Office 2010, вы не можете установить 64-разрядное «Microsoft Access Database Engine 2010 Redistributable». |