以上就是给各位分享为Excel生成CSV文件,如何在值内添加换行符,其中也会对csv文件里面的换行进行解释,同时本文还将给你拓展c#–如何在Panel中添加换行符或html?、C#写文本文件,如何换行
以上就是给各位分享为 Excel 生成 CSV 文件,如何在值内添加换行符,其中也会对csv文件里面的换行进行解释,同时本文还将给你拓展c# – 如何在Panel中添加换行符或html?、C#写文本文件,如何换行(添加换行符)、html – 如何使用CSS在输入元素后添加换行符?、java 以 utf-8 生成 csv 文件,用 excel 打开乱码问题解决等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:- 为 Excel 生成 CSV 文件,如何在值内添加换行符(csv文件里面的换行)
- c# – 如何在Panel中添加换行符或html?
- C#写文本文件,如何换行(添加换行符)
- html – 如何使用CSS在输入元素后添加换行符?
- java 以 utf-8 生成 csv 文件,用 excel 打开乱码问题解决
为 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 中打开它,结果会有所不同:
- 文件中只有 ASCII 字符(没有 BOM):有效。
- 文件中有非 ASCII 字符(以 UTF-8 编码),开头是 UTF-8 BOM:它识别出您的数据以 UTF-8 编码,但它忽略 csv 扩展名并将您放入 Text导入 not-a-Wizard ,不幸的是,您会遇到换行问题。
选项包括:
- 训练用户不要从 Excel 中打开文件 :-(
- 考虑直接编写一个 XLS 文件…在 Python/Perl/PHP/.NET/etc 中有可用于执行此操作的包/库
c# – 如何在Panel中添加换行符或html?
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# 中,文本换行有两种方法,一种在需要换行的文本后面添加换行符 \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在输入元素后添加换行符?
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实现?
解决方法
作为解决方法,您可以在< 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 打开乱码问题解决

输出到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 打开乱码问题解决等相关知识的信息别忘了在本站进行查找喔。
本文标签: