使用OleDB连接将撇号字符添加到Excel导出

塞尔宾

我要生成与以前使用的Excel报告完全相同的Excel报告(与旧版本的Excel)。唯一的问题是,旧式报告中的所有单元格都以带有撇号字符的字符串形式呈现:

在此处输入图片说明

我用下面的代码创建了基本相同的报告:

oleDbConnection = new System.Data.OleDb.OleDbConnection(
            "provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
            fileFullPath +  
            ";Extended Properties='Excel 12.0 Xml;HDR=YES' ");
oleDbConnection.Open();
oleDbCommand.Connection = oleDbConnection;

string commandHeader = String.Join("] char(255), [", headers);
commandHeader = "[" + commandHeader + "]";
commandHeader = "CREATE TABLE data (" + commandHeader + " char(255))";

oleDbCommand.CommandText = commandHeader;
oleDbCommand.ExecuteNonQuery();

foreach (var item in exportList)
{
     string line = String.Join("\",\"\'", new string[] {item.Foreman_ID, item.DateApp.Date.ToString("yyyyMMdd"), item.TimeApp,
     item.Employee_ID, item.ProductionOrder, item.OperationNumber,
     item.ConfirmationNumber, item.date.Date.ToString("yyyyMMdd"), item.TotalHours.ToString("0.000").Replace(",", "."), item.SalaryType, item.TimeType,
     item.ExtraPrice.ToString("0.00").Replace(",", "."), item.ExtraHours, item.ActualPC, item.PcPriceSplit, item.CostCenter});
     line = line.Replace(" ", String.Empty);
     line = "\"\'" + line + "\"";

     oleDbCommand.CommandText = "Insert into data values(" + line + ")";
     oleDbCommand.ExecuteNonQuery();
}

oleDbConnection.Close();

此代码生成相同的行,其中每个单元格均以撇号字符开头。但是,如果我打开生成的Excel,则仍然会看到撇号:

在此处输入图片说明

如果我按该单元格,然后按Enter键,则该撇号将消失。

安德鲁斯

根据以上我的评论:您不需要'显式添加到要插入的每个单元格值。

相反,您应该'INSERT .. VALUES (...)语句中删除前导字符,并通过添加IMEX=0或来更改连接字符串IMEX=2

oleDbConnection = new System.Data.OleDb.OleDbConnection(
            "provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
            fileFullPath +  
            ";Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=0' ");

请参阅OLEDB中IMEX的默认值是什么?这个问题需要进一步IMEX讨论。

也有提到的MSFT KB文章与相关IMEX从那篇文章中,IMEX的可能设置为:

0是导出模式-用于写入/插入Excel文件
1是导入模式-用于从Excel文件读取
2是链接模式(完全更新功能)

注意,IMEX仍然可以找到描述完整行为的原始完整MSFT文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PDO将撇号添加到mySQL查询中

来自分类Dev

将撇号添加到正则表达式匹配中

来自分类Dev

直接将选项添加到撇号图像小工具

来自分类Dev

将撇号添加到正则表达式匹配中

来自分类Dev

无法将撇号添加到Azure云服务内部负载均衡器设置

来自分类Dev

如何将撇号正确添加到 mySQL INSERT 命令中

来自分类Dev

使用sed添加撇号字符

来自分类Dev

使用sed添加撇号字符

来自分类Dev

使用 to_excel 导出时将当前日期添加到文件名的末尾

来自分类Dev

将哈希号添加到UrlGenerator

来自分类Dev

将哈希号添加到UrlGenerator

来自分类Dev

使用 VBA 将 CSV 格式的字符串添加到 Excel 工作表

来自分类Dev

Excel使用Office JS添加-如何将HTML字符串添加到Excel文本框

来自分类Dev

将报表 SSRS 导出到 Excel 仅将小数添加到 0.00 值

来自分类Dev

使用jQuery将字符串添加到textarea

来自分类Dev

使用awk将字符添加到特定字段

来自分类Dev

使用VBA将行添加到Excel表

来自分类Dev

使用对象将公式添加到Excel C#

来自分类Dev

使用EPplus将文本添加到Excel

来自分类Dev

使用 openXML 将图像添加到 Excel

来自分类Dev

php是否将撇号添加到函数的默认参数?如果是的话,我该怎么做呢?

来自分类Dev

将静态字符串添加到动态字符串的连接问题

来自分类Dev

如何使用 Flask 和 Python 将内容标题添加到导出文件

来自分类Dev

将字符添加到频率列表

来自分类Dev

将字符添加到整数的开头

来自分类Dev

将数据添加到Excel中

来自分类Dev

将图片添加到Excel vba

来自分类Dev

将图像添加到Excel

来自分类Dev

将域添加到 Excel 名称