如何将Excel表格中的数据插入到数据库表中?
我需要将 Excel 工作表中的数据插入到 Teradata 表中。 我需要使用宏来完成此操作。
我的 Excel 工作表中有数据,例如
COL1 COL2 COL3 COL4 1 2 3 4 2 5 8 10 . .so on
我需要在 Excel 工作表中保留一个按钮,并为该按钮分配一个宏,以便当我单击该按钮时,Excel 工作表中的行应该插入到数据库表中。
要求是我将空的 Excel 工作表发送给该人,他将在该工作表中填写数据,然后单击 Excel 中的按钮,数据必须插入到数据库表中。 我更喜欢使用宏来完成此操作..
谢谢大家。
I need to insert the data from an excel sheet into a teradata table.
and I need this to be done using a MACRO.
I have data in an excel sheet like
COL1 COL2 COL3 COL4 1 2 3 4 2 5 8 10 . .
so on
and i need to keep a button in the excel sheet and assign a macro to that button so that when i click the button the rows in the excel sheet should be inserted into a database table.
The requirement is that I will send the empty excel sheet to the person, he will fill in the sheet with the data and he clicks the button in the excel and the data has to be inserted into the database table.
I would prefer doing this using a macro..
Thanks all.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我创建了一个函数,可以将 Excel 表格转换为多个插入命令。
将其复制到模块中,然后在公式中,将需要插入的单元格的值设置为第一个参数,第二个范围应该是列的名称(按 F4 将其设置为常量),第三个参数(可选)表的名称。如果未指定表名称,则默认使用工作表名称。
在您的情况下,电子表格应如下所示:
这将为您生成这两个查询:
这是函数(与 Microsoft SQL (TSQL) 配合良好):
如果您有大量数据要插入,您可能不需要在每个命令中使用 INSERT INTO,然后在第一行(以及每 500 行)中使用 Insert2DB 函数,其余的仅使用 Insert2DBValues:
这将为您提供以下命令:
最后,如果您使用 MySQL,则有不同的转义字符串,因此在这种情况下使用 Insert2DBMySQL:
I've created function that will transform the Excel table into multiple Insert Commands.
Copy this into the module and then in formula, set up as first parameter the values of cells that needs to be inserted, the second range should be the names of columns (press F4 to set up this as constant), and third (optional) the name of the table. If table name is not specified, then the name of sheet will be used as default.
In your case this is how the spreadsheet should look like:
This will generate for you those two queries:
Here is the function (works good with Microsoft SQL (TSQL):
If you have quite a lot data to insert, you might not need to use INSERT INTO in each command, then just use the Insert2DB function in first row (and every 500th) and for the rest use just Insert2DBValues:
This will give you following commands:
And finally, if you are using MySQL, there is different escaping of strings, so in such a case use Insert2DBMySQL:
查看此链接,了解如何使用 vb/vba 代码(用于 marco)移动数据从 Excel 到 SQL Server。
Have a look at this link for using vb/vba code (for the marco) to move data from excel to sql server.