【问题标题】:Include leading zeros in a CSV file without importing [duplicate]在 CSV 文件中包含前导零而不导入 [重复]
【发布时间】:2015-08-28 15:47:29
【问题描述】:

我有创建用于 Excel 2013 的 csv 邮件列表的代码。我的问题是,当单击 csv 以在 Excel 中打开时,邮政编码的前导零被删除。

在旧版本的 Excel 中,您可以添加单引号来表示应将单元格视为字符串,但在较新版本中,包含单引号。我也尝试过双引号并将邮政编码用单引号和双引号括起来,但没有运气。

我知道您可以将 csv 更改为文本文件,然后手动将其导入 Excel,将 zip 列设置为文本列,但我更愿意让最终用户更轻松。

有没有办法在 Excel 2013 中将数字作为字符串从 csv 导入?

【问题讨论】:

  • 一个csv文件一个文本文件。作为一个数字,044414441 相同。如果您想让 excel 了解领先的 zed,您必须确保它们存在于文件中。这意味着在您没有显示的代码中以这种方式格式化它。
  • @Ceres - 我不得不寻找它,因为 =" 和 "="" 不起作用。但是,如果我在数字前面添加一个制表符,则它会被识别为文本而不打印可见字符。希望这不会弄乱邮件合并中的间距,但它让我更近了一步。
  • @rheitzman 我们完全不知道 OP 是否甚至将前导零放在 csv 中(没有代码,没有样本)。如果创建 CSV 的代码使用数字,则可能导致前导零丢失。它们的导入方式完全取决于应用导入。
  • 尾随标签可能适合您的特定用途,但请注意,如果使用 zip 数据,它仍将包含标签。您可能会考虑编写一个处理前导零问题的“加载器”模板/宏。您的用户将始终运行相同的加载程序“程序”。如果您不使用文本导入器,但取决于 Excel 对扩展名为 .csv 的文件的默认处理,您的帖子的答案是否定的。

标签: vb.net csv excel-2013


【解决方案1】:

编辑:如上面的 cmets 所述,还有a solution on the exporting side


您是否尝试过导入,而不是仅使用 excel 打开 .csv 文件,使用 数据 > 导入外部数据 > 从文本

你必须选择一个专用的文本限定符,可以是你的单引号'

只需确保选择 Text 作为列的列类型,您需要在其中添加前导零。

结果如下:

对不起,德国人的屏幕截图,但你住在你住的地方。 ;-)

【讨论】:

  • "我知道您可以将 csv 更改为文本文件,然后手动将其导入 Excel,将 zip 列设置为文本列,但我希望最终用户更轻松。” - 我想你错过了那一点......
  • 我理解“当单击 csv 以在 Excel 中打开时”试图在 Excel 中打开一个 .csv 文件,如果 Excel 是关联的默认程序,则会导致所描述的问题使用 .csv 文件。如果 OP 正在寻找一种通过代码将数据传输到 Excel 工作表中的编程方式,我建议在解析内容之前将列/字段数据类型设置为“文本”。
  • 我知道这一点,提问者也知道。最后一部分更重要 - 我希望让最终用户更轻松 - 他们正在寻找一种在代码中创建 CSV 文件的方法,这样他们就不必做笨拙的事情了进口。
  • .csv 文件的处理是处理程序的责任(在这种情况下:Excel)。我怀疑您是否可以以某种方式创建 .csv,让 excel 认为“啊哈!某种特殊的 .csv 文件!我不会像通常对 .csv 文件那样对这个文件做出反应!”,考虑到.csv-files 缺少一个可能告诉处理程序如何进行解析的标题的事实......另一个解决方案是创建一个 VBA-import-process 作为 Excel 的插件/宏,它可以处理处理 .csv 文件所需的特定逻辑。
  • 我相信在过去的 Excel 版本中,您可以在数字的开头添加一个 ',它会作为文本导入,去掉单引号。我只是希望在较新版本的 Excel 中有类似的东西,但听起来好像没有。
猜你喜欢
  • 1970-01-01
  • 2017-01-08
  • 2022-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-06
  • 1970-01-01
  • 2021-09-21
相关资源
最近更新 更多