如何将Excel电子表格表单中的数据转换为上传到数据库的格式

时间:2013-02-13 16:45:11

标签: database excel excel-vba format vba

我需要一种很好的方法将输入数据从900个电子表格转换为适合上传到关系数据库(XML或平面文件)的格式。电子表格是多页,多行Excel 2007,每个由7种形式组成(因此它绝对不是简单的网格)。将不会有公式数据,只有文本,日期,整数数据。

900个电子表格都采用相同的格式。 我需要一些脚本化的解决方案。

我期待我能用excel宏做这个(我希望一个花哨的可编写脚本的编辑器也可以这样做)或者可能是SSIS。

有人可以告诉我,如果是你的话,你将如何处理这个问题?

任何人都可以通过一些方法提供一些技术信息的链接吗?

我是excel宏的新手,但习惯于编程和脚本语言,sql,其他。

为什么呢?我们使用电子表格表格作为临时解决方案,然后我需要将数据存入数据库。

1 个答案:

答案 0 :(得分:1)

您可能希望将数据写入纯文本文件。使用FileSystemObject的CreateTextFile方法。文档:

http://msdn.microsoft.com/en-us/library/aa265018(v=vs.60).aspx

网上有很多关于如何迭代工作表,捕获数据然后使用WriteLine方法的例子。

Sub ExampleTextFile()
    Dim fso as Object
    Dim oFile as Object
    Dim fullExport as String

    'Script that will capture data from worksheet belongs here _
    ' use the fullExport string variable to hold this data, for now we will _
    ' just create a dummy string for illustration purposes

    fullExport = "Example string contents that will be inserted in to my text file!"

    Set fso = CreateObject("Scripting.FileSystemObject")

   'In the next line, replace "C:\filename.txt" with the specified file you want to create

    set oFile = fso.CreateTextFile("C:\filename.txt", Overwrite:=True, unicode:=True)  

    oFile.WriteLine(fullExport) '<-- inserts the captured string to your new TXT file
    oFile.Close

    Set fso = Nothing
    Set oFile = Nothing

End Sub

如果你有字符编码问题(我最近遇到了UTF16LE与UTF8编码的问题,你需要使用ADODB.Stream对象,但这需要一个不同的方法来编写文件。