当前位置: 首页 > 知识库问答 >
问题:

opencsv内容-逗号后的值

丁成弘
2023-03-14

我使用Java和opencsv(2.3)创建csv文件。

它是正确创建的。但当我打开文件时,我看到所有数据都显示在一列中。

为了将值对齐到单独的列中

1.我在excel的数据选项卡中选择“文本到列”

2.我选择分隔符作为“;”

我用于创建CSV文件的CSVWriter:

   File file = new File(fileName);
   CSVWriter writer = new CSVWriter(new FileWriter(fileName, true), ';');
   String[] col= new String[4];

   for(Customer c : CustomerList) {
         col[0] = c.getCustomerName();
         col[1] = c.getCustomerId();
         col[2] = c.getCustomerBirthDate();
         col[3] = c.getRegFee(); /** 145,65**/
         col[4] = c.getRegPlace();
         writer.writeNext(col);
   }

   writer.close();

CSV文件-实际内容:

"Micky";"1";"19901220";"455,56";"Place1"

"Grace";"2";"19901231";"465,87";"Place2"

CSV文件-使用excel打开时:

   "Micky";"1";"19901220";"455" // , 56 and Place1 are vanished

   "Grace";"2";"19901231";"465" // , 87 and Place2 are vanished

共有1个答案

西门飞星
2023-03-14

我认为问题与您将其导入Excel的方式有关。

使用上面的示例,我创建了一个CSV文件并在记事本中打开它以验证内容。

如果您双击CSV文件(并将Excel与该文件类型关联),它将在Excel中打开,并且看起来Excel默认尝试使用逗号作为分隔符。它跨2列显示数据。

如果您打开Excel,然后导入CSV文件,您可以告诉Excel您的文件已被分隔并且分号是分隔符。使用数据选项卡中的来自文本菜单项导入:

然后将正确显示:

 类似资料:
  • 如果内容相同,我想将两个文件合并为一个: first.txt second.txt 后果txt 首先,我想读取文件的内容并将其保存到数组中。但是怎么做呢? 输出: 1,2,3 例如,如何将逗号分隔开来,以便我可以编写?

  • 如果内容相同,我想将两个文件合并为一个: 第一txt second.txt 后果txt 首先,我想读取文件的内容并将其保存到数组中。但是怎么做呢? 产出:1,2,3 例如,如何将逗号分隔开来,以便我可以编写?

  • 问题内容: 我已经看到了许多相关的问题,但是都没有直接解决我想做的事情。我正在从CSV文件中读取文本行。 所有项目都用引号引起来,有些则在引号内有其他逗号。我想按逗号分隔行,但忽略引号内的逗号。有没有一种方法可以在Python中执行此操作,而无需使用许多正则表达式语句。 一个例子是: 我想将其解析为4个单独的值变量: 我想念一个简单的选择吗? 问题答案: 不要尝试重新发明轮子。 如果要读取CSV文

  • 如何知道与CSVReader类读取的行相关联的文件中的实际行号?我可以计算行数,假设这个类读取的每一行都是文件中的新行。问题是CSV文件中可能有换行符。例如,有3个“逻辑”行并不意味着我们有3个文件中的“物理”行。我有一个错误报告功能,因为它几乎总是报告错误的行号。 任何想法如何确定文件上的实际行号?谢谢!

  • 问题内容: 在我的一个项目中,我不得不处理逗号分隔文件(CSV)。我必须基于逗号来拆分数据,而忽略引号内的逗号(即),因此我使用了另一个堆栈溢出问题(Java:拆分逗号分隔的字符串但忽略了引号中的逗号)中提到的表达式。一切工作都很好,直到最近我才注意到它不适用于下面提到的一种特定情况。 我需要在逗号上拆分的数据字符串为: 以我的理解为基础 拆分后的数据应返回一个大小为10的数组,该数组的后两个索引

  • 问题内容: 我有一些输入如下所示: 逗号分隔的值可以是任何顺序。我想用逗号分割字符串;但是,在双引号内包含某些内容的情况下,我需要它既忽略逗号又去除引号(如果可能)。因此,基本上,输出将是以下字符串列表: 我已经看过其他一些答案,并且我认为正则表达式是最好的,但是我想出这些答案很糟糕。 问题答案: 拉瑟是对的。这是一个逗号分隔的值文件,因此您应该使用module。一个简单的例子: