Да, можете, но, вероятно, не хотите.
Excel и SSIS в лучшем случае привередливы. SSIS верит в твердый набор метаданных, который устанавливается во время разработки и соблюдается во время выполнения. Excel интерпретирует метаданные на основе выборки первых 8 строк данных. Если файл Excel сгенерирован машиной, то SSIS и он могут работать вместе достаточно хорошо, но поскольку это будут пользователи, загружающие файлы ... вы потратите много времени на устранение неполадок, почему две, казалось бы, одинаковые электронные таблицы не будут анализировать одно и то же способом в SSIS.
Как заставить SSIS работать? Либо вы используете объектную модель, либо dtexe c .exe, чтобы сделать его go. Оба этих подхода действительны только в том случае, если вы лицензировали сервер для SQL Server. Если вы устанавливаете библиотеку объектов или службу Integration Services на свой веб-сервер, вам нужно будет купить еще одну лицензию SQL Server для вашего предприятия. Это дорого.
Чем я, наверное, человек, больше всего влюбленный в SSIS на Stack Overflow, делаю? Я бы использовал библиотеку Open Xml, например EPPlus. Я писал о подходе к Чтению файлов Excel без Excel
using OfficeOpenXml;
// ...
/// Get data from Excel worksheet, assuming columns A-G are desired
public Dictionary<string, List<string>> GetExcelDriverData(string sourceFile)
{
Dictionary<string, List<string>> d = new Dictionary<string, List<string>>();
System.IO.FileInfo fi = new System.IO.FileInfo(sourceFile);
using (ExcelPackage ep = new ExcelPackage(fi))
{
ExcelWorkbook wb = ep.Workbook;
ExcelWorksheet ws = wb.Worksheets.First();
if (ws != null)
{
// 1 based array to 7, inclusive
for (int i = ws.Dimension.Start.Row+1; i < ws.Dimension.End.Row+1; i++)
{
List<string> row = new List<string>() { ws.Cells[i, 1].Value.ToString()
, ws.Cells[i, 2].Value.ToString()
, ws.Cells[i, 3].Value.ToString()
, ws.Cells[i, 4].Value.ToString()
, ws.Cells[i, 5].Value.ToString()
, ws.Cells[i, 6].Value.ToString()
, ws.Cells[i, 7].Value.ToString()
};
d[ws.Cells[i, 7].Value.ToString()] = row;
}
}
}
return d;
}
Обратите внимание, что это последняя версия EPPlus LGPL, если вы не знаете, что делать. . Версия 5+ требует лицензирования, но она намного дешевле, чем лицензия SQL Server.