0

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

900 个电子表格都采用相同的格式。我将需要某种脚本解决方案。

我希望我应该能够使用 excel 宏(并且我希望一个花哨的可编写脚本的编辑器也可以做到)或者可能是 SSIS 来做到这一点。

有人能告诉我,如果这是你的事,你会怎么做?

任何人都可以提供一些技术信息的链接,以了解这样做的好方法吗?

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

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

4

1 回答 1

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 对象,但这将需要另一种写入文件的方法。

于 2013-02-13T17:59:21.370 回答