我在一个文件夹中有一组excel文件。 excel文件名就像
ABC 2014-09-13.xlsx
ABC 2014-09-14.xlsx
ABC 2014-09-15.xlsx
我需要从最新的excel文件中获取数据并使用ssis
包将其加载到表中。
答案 0 :(得分:0)
这可能不是最短的答案,但会对你有帮助。
步骤:
For-each loop
,以获取所有excel sheets
。将所有Excel工作表名称插入table
。MAX()
。Fore-each loop
。就像第一个循环一样,选择所有excel表1 1,将每个文件名与Variable值进行比较。加载与之匹配的excel。答案 1 :(得分:0)
由于这是一个重复的问题,无论如何我会回答一些更改或其他信息。
ReadOnlyVariables = User::MainDir
和ReadWriteVariables = User::ExcelFile
进入Main
string fileMask = "*.xlsx";
string mostRecentFile = string.Empty;
string rootFolder = string.Empty;
rootFolder = Dts.Variables["User::MainDir"].Value.ToString();
System.IO.DirectoryInfo directoryInfo = new System.IO.DirectoryInfo(rootFolder);
System.IO.FileInfo mostRecent = null;
System.IO.FileInfo[] legacyArray = directoryInfo.GetFiles(fileMask, System.IO.SearchOption.TopDirectoryOnly);
Array.Sort(legacyArray, (f2, f1) => f2.Name.CompareTo(f1.Name));
mostRecent = legacyArray[legacyArray.Length - 1];
if (mostRecent != null)
{
mostRecentFile = mostRecent.FullName;
}
Dts.Variables["User::ExcelFile"].Value = mostRecentFile;
Dts.TaskResult = (int)ScriptResults.Success;`
@[User::ExcelFile]
添加属性 ExcelFilePath Excel Connection Manager
,Data access mode
更改为SQL命令并添加此行(确保excel文件表名称为Sheet1):SELECT * FROM [Sheet1$]
。还要检查是否在“列”选项卡中选择了所有必需的列。这就是你需要做的就是插入excel ......