题
使用 ADO 创建 Excel 电子表格时不能使用哪些列名称。
我有一个在电子表格中创建页面的语句:
CREATE TABLE [TableName] (Column string, Column2 string);
我发现使用列名 Date
或者 Container
执行该语句时会产生错误。
有人有不能用作列名称的完整(或部分)单词列表吗?这是为了在用户驱动的环境中使用,“修复”列比崩溃更好。
我的解决方法是替换任何出现的 Date
或者 Container
和 Date_
和 Container_
分别。
解决方案
您可以对任何字段名使用括号,例如:
CREATE TABLE [TableName] ([Date] string, [Container] string)
完整示例:
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp\\test.xls;Extended Properties='Excel 8.0;HDR=Yes'"))
{
conn.Open();
OleDbCommand cmd = new OleDbCommand("CREATE TABLE [TableName] ([Date] string, [Container] string)", conn);
cmd.ExecuteNonQuery();
}
其他提示
以下是 MS Query 的保留字:
http://support.microsoft.com/kb/125948
单元格命名规则:
http://ezinearticles.com/?Rules-For-Naming-Cells-in-Microsoft-Excel&id=218607
这看起来更像是 SQL 保留字的问题。这是一个 好清单
不隶属于 StackOverflow