[SQL Server] Afficher la liste des classeurs et filtres trouvés dans un fichier Excel
-- =============================================
-- Author: Zouhaier KHARROUBI
-- Create date: 27/10/2016
-- Description: Afficher la liste des classeurs et filtres trouvés dans un fichier Excel
-- =============================================
DECLARE @Chemin_Fichier AS NVARCHAR(MAX)
,@Serveur_Lie_Excel AS NVARCHAR(55)
SELECT @Chemin_Fichier ='\\Mektaba\MonFichier.xlsx'
,@Serveur_Lie_Excel ='MonServeurLieExcel'
IF EXISTS(SELECT srv.name FROM sys.servers srv WHERE srv.server_id != 0 AND srv.name = @Serveur_Lie_Excel)
BEGIN
EXEC master.dbo.sp_dropserver@server=@Serveur_Lie_Excel, @droplogins='droplogins'
END
IF EXISTS(SELECT * FROM tempdb..sysobjects WHERE id = object_id(N'tempdb..#Liste_Classeurs_Excel'))
BEGIN
DROP TABLE #Liste_Classeurs_Excel
END
CREATE TABLE #Liste_Classeurs_Excel
(
TABLE_NUM INT IDENTITY (1,1)
,TABLE_CAT VARCHAR(255) NULL
,TABLE_SCHEM VARCHAR(255) NULL
,TABLE_NAME VARCHAR(255) NULL
,TABLE_TYPE VARCHAR(255) NULL
,REMARKS VARCHAR(255) NULL
)
EXEC sp_addlinkedserver
@server = @Serveur_Lie_Excel,
@srvproduct = 'Excel',
@provider = 'Microsoft.ACE.OLEDB.12.0',
@datasrc = @Chemin_Fichier,
@provstr = 'EXCEL 12.0 XML;HDR=YES';
INSERT INTO #Liste_Classeurs_Excel
EXEC sp_tables_ex@Serveur_Lie_Excel
--Afficher la liste des classeurs Excel
SELECT * FROM #Liste_Classeurs_Excel WHERE TABLE_NAME NOT LIKE '%filter%'
--Afficher la liste des filtres créées dans le fichier Excel
SELECT * FROM #Liste_Classeurs_Excel WHERE TABLE_NAME LIKE '%filter%'