gpt4 book ai didi

sql-server - 在使用 SSIS 加载到 SQL Server 数据库之前更改 CSV 中列的格式

转载 作者:行者123 更新时间:2023-12-02 03:03:42 26 4
gpt4 key购买 nike

我正在尝试使用 SSIS 在 SQL Server 数据库表中加载一个 csv 文件。目前在加载文件之前,我们在 excel 中打开文件并将列 B 的格式从常规更改为数字。 (如果不这样做,将加载该列的不正确数据)

例如,下面第 4 行是日期,但在加载之前,我们将 B 列的格式从常规更改为数字。然后将其转换为值 42767(正确数据)

Column A Column B
-----------------
1. 11622
2. IZED
3. DGA-435
4. 1/02/2017

现在我们必须自动化这个过程并使用一些逻辑,这可以在 SSIS 中完成吗?请提出建议。

谢谢,阿杰

最佳答案

您可以使用 Vb.net (或 c#) 脚本并使用 Microsoft.office.Interop.Excel

注意:您必须将 Microsoft.Office.Interop.Excel.dll 文件添加到以下目录(.Net Framework dll 目录)C:\Windows\Microsoft。 NET\Framework\v2.0.50727 和(sql server 数据工具 dll 目录)C:\Program Files\Microsoft SQL Server\100\DTS\Binn(使用 visual studio 2005 和 sql 2008 ) 然后将此 dll 添加为脚本任务中的引用

Imports Microsoft.Office.Interop.Excel

Public Sub Main()

Dim m_XlApp As Application

m_XlApp = New Application
m_XlApp.visible = False
m_XlApp.DisplayAlerts = False

Dim m_xlWrkbs As Workbooks = m_XlApp.Workbooks
Dim m_xlWrkb As Workbook
m_xlWrkb = m_xlWrkbs.Open(strFile) 'strFile must contains the fule path ex: C:\1.xls

m_xlWrkb.DoNotPromptForConvert = True

Dim m_xlsheet As Worksheet = w.Sheets(1)

'Change the second column to number
m_xlsheet.Cells(1,2).EntireColumn.NumberFormat = "0"

m_xlWrkb.Save()
m_xlWrkb.Close(SaveChanges:=True)

m_XlApp.Quit()


End Sub

注意:如果您决定使用脚本任务实现此目的,您必须了解如何在脚本任务中添加自定义引用

可能有帮助的链接

关于sql-server - 在使用 SSIS 加载到 SQL Server 数据库之前更改 CSV 中列的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44125539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com