我正在将 Excel 文件导入到我的应用程序中,有时工作表列名称中包含“$”符号。我收到此异常:
System.Data.OleDb.OleDbException was unhandled
Message=''6um$'$' is not a valid name. Make sure that it does not include invalid characters or punctuation and that it is not too long.
在此表中,“6um$”是列名称。
这是我的代码:
OleDbConnection con = new System.Data.OleDb.OleDbConnection(connectionString);
OleDbDataAdapter cmd = new System.Data.OleDb.OleDbDataAdapter(
"select * from [" + worksheetName + "$]", con);
con.Open();
System.Data.DataSet excelDataSet = new DataSet();
cmd.Fill(excelDataSet);
con.Close();
有什么想法如何处理这种情况吗?
编辑:
我认为问题出在列名中包含 $ 。但事实证明,问题在于工作表名称中有 $ 符号!
最佳答案
好的,我找到了解决方案: 由于某种原因,我自己重命名的工作表有额外的 $ 符号(不知道为什么,Excel 中没有 $ 符号,但 OLEDB 返回它们时带有额外的 $ ,例如 '6um$'$')。我修剪掉第一个 $ 并使用此代码检查是否还剩下任何额外的 $ 符号:
char delimiterChars = '$';
string[] words = worksheetName.Split(delimiterChars);
worksheetName=words[0];
关于c# - 如何处理 OleDb Excel 导入中的无效字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14878092/