GVKun编程网logo

为 Excel 生成 CSV 文件,如何在值内添加换行符(csv文件里面的换行)

27

以上就是给各位分享为Excel生成CSV文件,如何在值内添加换行符,其中也会对csv文件里面的换行进行解释,同时本文还将给你拓展c#–如何在Panel中添加换行符或html?、C#写文本文件,如何换行

以上就是给各位分享为 Excel 生成 CSV 文件,如何在值内添加换行符,其中也会对csv文件里面的换行进行解释,同时本文还将给你拓展c# – 如何在Panel中添加换行符或html?、C#写文本文件,如何换行(添加换行符)、html – 如何使用CSS在输入元素后添加换行符?、java 以 utf-8 生成 csv 文件,用 excel 打开乱码问题解决等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

为 Excel 生成 CSV 文件,如何在值内添加换行符(csv文件里面的换行)

为 Excel 生成 CSV 文件,如何在值内添加换行符(csv文件里面的换行)

我需要为 Excel 生成一个文件,这个文件中的一些值包含多行。

那里还有非英文文本,所以文件必须是 Unicode。

我现在生成的文件看起来像这样:(在 UTF8 中,混合了非英文文本并且有很多行)

Header1,Header2,Header3Value1,Value2,"Value3 Line1Value3 Line2"

请注意,多行值用双引号括起来,其中包含正常的日常换行符。

根据我在网上找到的内容,这应该可以工作,但至少不能赢得 Excel 2007 和 UTF8 文件,Excel
将第三行视为第二行数据而不是第一行数据的第二行.

这必须在我客户的机器上运行,而且我无法控制他们的 Excel 版本,所以我需要一个适用于 Excel 2000 及更高版本的解决方案。

谢谢

编辑:我通过有两个 CSV 选项“解决”了我的问题,一个用于
Excel(Unicode,制表符分隔,字段中没有换行符),另一个用于世界其他地方(UTF8,标准 CSV)。

不是我想要的,但至少它有效(到目前为止)

答案1

小编典典

只有在空格字符是数据的一部分时,您才应该在字段的开头使用空格字符。Excel
不会去掉前导空格。您将在标题和数据字段中获得不需要的空格。更糟糕的是",应该“保护”第三列中的换行符将被忽略,因为它不在字段的开头。

如果文件中有非 ASCII 字符(以 UTF-8 编码),则文件开头应该有一个 UTF-8 BOM(3 个字节,hex EF BB BF)。否则
Excel 将根据您的语言环境的默认编码(例如 cp1252)而不是 utf-8 解释数据,并且您的非 ASCII 字符将被丢弃。

以下评论适用于 Excel 2003、2007 和 2013; 未在 Excel 2000 上测试

如果您通过在 Windows 资源管理器中双击文件名来打开文件,则一切正常。

如果从 Excel 中打开它,结果会有所不同:

  1. 文件中只有 ASCII 字符(没有 BOM):有效。
  2. 文件中有非 ASCII 字符(以 UTF-8 编码),开头是 UTF-8 BOM:它识别出您的数据以 UTF-8 编码,但它忽略 csv 扩展名并将您放入 Text导入 not-a-Wizard ,不幸的是,您会遇到换行问题。

选项包括:

  1. 训练用户不要从 Excel 中打开文件 :-(
  2. 考虑直接编写一个 XLS 文件…在 Python/Perl/PHP/.NET/etc 中有可用于执行此操作的包/库

c# – 如何在Panel中添加换行符或html?

c# – 如何在Panel中添加换行符或html?

我正在尝试使用以下代码创建一个菜单.但是我不知道如何让每个LinkBut​​ton都显示在单独的行上.
MenuPanel.Controls.Clear();
foreach (Formlist f in forms)
{
  if (f.IsActive == "y")
  {
     FormUserControl fc = (FormUserControl)LoadControl(f.StartControl);
     LinkButton lb = new LinkButton();
     lb.Text = fc.Title;
     MenuPanel.Controls.Add(lb);
     // I want some sort of line break here
  }
}

解决方法

使用 LiteralControl类插入换行符
MenuPanel.Controls.Add(new LiteralControl("<br />"));

或使用CSS来使您的链接块级元素…

#menu a { display: block; }

C#写文本文件,如何换行(添加换行符)

C#写文本文件,如何换行(添加换行符)

把文本写到文件中,如果是几段文字拼合起来输出到文件中,通常每段非结尾文字后需要添加换行符,不然几段文字都变成一段。

  在 C# 中,文本换行有两种方法,一种在需要换行的文本后面添加换行符 \r\n 即可,另一种方法用 Environment.NewLine,功能与 \r\n 一样,接着分别看这种两种方法的具体实现代码。

 

  一、C#文本换行之用换行符 \r\n

  一个 \r\n 表示换一行;如果要换两行,则重复 \r\n,即 \r\n\r\n;换三行重复三次,即 \r\n\r\n\r\n;往下依次类推。代码示例如下:

  /// <summary>
  /// C#写文本换行
  /// </summary>
  /// <param name="filePath">文本文件路径</param>

  public void SaveTxtFile(string filePath)
  {
    string text = "C#文本换行" + "\r\n" + "写文本文件换行符";//\r\n表示换一行
    try
    {
      using (FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write))
      {
        StreamWriter sw = new StreamWriter(fs);
        sw.Write(text);
        sw.Flush();
        sw.Close();
        fs.Close();
      }
    }
    catch
    {
      //"保存文本文件出错!"
    }
  }

  调用方法:SaveTxtFile( @"G:\xq\");


二、C#文本换行之用 Environment.NewLine

  下面的代码也是写文本文件,实现方法跟上面的相同,只是用 Environment.NewLine 代替 \r\n,具体代码如下:

  /// <summary>
  /// C# 用 Environment.NewLine 换行
  /// </summary>
  /// <param name="filePath">文本文件路径</param>

  public void SaveTxtFile(string filePath)
  {
    try
    {
      using (FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write))
      {
        StreamWriter sw = new StreamWriter(fs);
        sw.BaseStream.Seek(0, SeekOrigin.End);
        sw.WriteLine("用 Environment.NewLine 实现文本文件换行;");
        sw.WriteLine(Environment.NewLine);//换行
        sw.WriteLine("被换行段落。");
        sw.Flush();
        sw.Close();
        fs.Close();
      }
    }
    catch
    {
      //"保存文本文件出错!"
    }
  }

  调用方法:SaveTxtFile( @"G:\xq\txt");


html – 如何使用CSS在输入元素后添加换行符?

html – 如何使用CSS在输入元素后添加换行符?

我正在使用一种服务,该服务通过一系列标签和输入返回动态 HTML,例如
input:after {
  content: "\a";
  white-space: pre;
}
<label for="username">Username</label>
<input type="text" id="username" name="username" />

<label for="country">Country</label>
<input type="text" id="country" name="country" />

我希望表单格式如下:

但它不起作用.不能使用div包围标签和输入,因为这是由服务返回给我的动态HTML.

任何想法如何只能通过CSS实现?

解决方法

替换了元素,包括< img>,< object>,< input>和< textarea> …没有:before和:after伪元素.

作为解决方法,您可以在< label>上设置换行符.元件.

label:before {
    content: "\a";
    white-space: pre;
}
<label for="username">Username</label>
<input type="text" id="username" name="username" />

<label for="country">Country</label>
<input type="text" id="country" name="country" />

java 以 utf-8 生成 csv 文件,用 excel 打开乱码问题解决

java 以 utf-8 生成 csv 文件,用 excel 打开乱码问题解决

高春辉、王春生、朱峰:关于开源创业的 15 件小事
输出到csv文件时,默认是采用系统的编码格式进行写文件。那么在某个linux系统就是UTF_8,在windows就是GBK 


 UTF-8 不需要 BOM 来表明字节顺序,但可以用 BOM 来表明编码方式。字符 “Zero Width No-Break Space” 的 UTF-8 编码是 EF BB BF。所以如果接收者收到以 EF BB BF 开头的字节流,就知道这是 UTF-8编码了。Windows 就是使用 BOM 来标记文本文件的编码方式的。


 utf-8保存的csv格式文件要让Excel正常打开的话,必须加入在文件最前面加入BOM(Byte order ) 

  不是开发者  :  编辑器->另存为->ASCII码格式文件/UTF-8含BOM格式->保存。 


FileInputStream fis = null;
                        InputStreamReader isr = null;
                        BufferedReader br = null;
                        FileOutputStream fos = null;
                        PrintWriter pw = null;
                        OutputStreamWriter outputStreamWriter = null;
                        try {
                            byte[] bom = new byte[] { (byte)0xEF, (byte)0xBB, (byte)0xBF };//-------------------------------------
                            fos = new FileOutputStream(file);
                            fos.write(bom);
                            outputStreamWriter = new OutputStreamWriter(fos, encoding);
                            pw = new PrintWriter(outputStreamWriter);
                            pw.write(sb.toString().toCharArray());
                            pw.flush();

                        } catch (IOException e1) {
                            throw e1;
                        } finally {
                            if (pw != null) {
                                pw.close();
                            }
                            if(outputStreamWriter!=null){
                                outputStreamWriter.close();
                            }
                            if (fos != null) {
                                fos.close();
                            }
                            if (br != null) {
                                br.close();
                            }
                            if (isr != null) {
                                isr.close();
                            }
                            if (fis != null) {
                                fis.close();
                            }
                        }

关于为 Excel 生成 CSV 文件,如何在值内添加换行符csv文件里面的换行的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于c# – 如何在Panel中添加换行符或html?、C#写文本文件,如何换行(添加换行符)、html – 如何使用CSS在输入元素后添加换行符?、java 以 utf-8 生成 csv 文件,用 excel 打开乱码问题解决等相关知识的信息别忘了在本站进行查找喔。

本文标签: