Я создал цикл foreach, который перебирает файлы Excel на листах внутри них.На основе имени листа выполняется одна из нескольких задач потока данных.
Это реализуется задачей выполнения SQL, которая проверяет переменную по значениям в таблице и возвращает значение, основанное на некоторыхусловия.
По какой-то причине он отлично работает, когда в имени листа нет пробелов (например, MyTab), однако, когда есть пробел (например, Моя вкладка), он не совпадает правильно.
Я попытался сравнить имя листа со следующими значениями в таблице БД.
- Моя вкладка $
- 'Моя вкладка $'
- 'Моя вкладка' $
- {'Моя вкладка $'}
- [Моя вкладка $]
- ['Моя вкладка $']
- "Моя вкладка $"
- Моя вкладка
- MyTab $
- (Моя вкладка $)
- '' Моя вкладка $ ''
- ['' Моя вкладка $ '']
- Моя вкладка $ $
Однако ни один из них не сравнится с именем листа "Моя вкладка"
SQL, который я использую для оценки переменной:
DECLARE @SheetName VARCHAR(100)
SET @SheetName = 'Tab1$'
IF EXISTS (SELECT 1
FROM [dbo].[xx]
WHERE sheetname = @SheetName)
-- The variable evaluates against the values in the sheetname column
BEGIN
SELECT 1 AS SheetExistsFlg
END
ELSE IF EXISTS (SELECT 1
FROM [dbo].[xx]
WHERE 'Tab 2$' = @SheetName)
BEGIN
SELECT 2 AS SheetExistsFlg
END
ELSE
BEGIN
SELECT 0 AS SheetExistsFlg
END
Есть идеи?