您的位置:首页 > 其它

[原创]导出CSV文件,特殊字符处理。

2015-01-16 17:02 190 查看
CSV文件格式
1、CSV
文件默认以英文逗号(,)做为列分隔符,换行符(\n)作为行分隔符。
2、CSV
默认认为由
""
括起来的内容是一个栏位,这时不管栏位内容里有除
"
之外字符的任何字符都可以按原来形式引用。
3、若字段内容里含有
",
这时只需将
"
替换成两个双引号
("")
即可。
CSV
会将字段里的两个双引号
""
显示成一个。
4、应用char(9)表示按照文本形式显示(实例红色字体部分)。应用实例private void ExportToSCV(GridView gridview, string path){try{if (File.Exists(path) && IsFileInUse(path)){MessageBox.Show("文件被占用,请先关闭文件!");return;}StringBuilder sb = new StringBuilder();string strCols = string.Empty;foreach (GridColumn col in gridview.Columns){if (!col.Visible) continue;strCols += col.Caption;strCols += ",";}strCols = strCols.Remove(strCols.Length - 1, 1);sb.AppendLine(strCols);for (int i = 0; i < gridview.RowCount; i++){string strRow = string.Empty;foreach (GridColumn col in gridview.Columns){if (!col.Visible) continue;// 应用char(9)表示按照文本形式显示string strValue ="\"" + ((char)(9)).ToString() + gridview.GetRowCellDisplayText(i, col) + "\"";strRow += strValue;strRow += ",";}strRow = strRow.Remove(strRow.Length - 1, 1);sb.AppendLine(strRow);}using (StreamWriter sw = new StreamWriter(path, false, Encoding.GetEncoding("GB2312"))){sw.Write(sb.ToString());sw.Flush();}}catch (Exception ex){MessageBox.Show(ex.Message);}}private bool IsFileInUse(string fileName){bool inUse = true;FileStream fs = null;try{fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None);inUse = false;}catch{}finally{if (fs != null)fs.Close();}return inUse;//true表示正在使用,false没有使用}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: