zoukankan      html  css  js  c++  java
  • [原创]导出CSV文件,特殊字符处理。

    CSV文件格式

    1、CSV文件默认以英文逗号(,)做为列分隔符,换行符( )作为行分隔符。
    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没有使用
    }

  • 相关阅读:
    Web服务器的有关概念
    备份微信中大量的公众号,备份其二维码图片
    (转载)使用SecureCRT连接Linux时,alt + .等功能键不能使用的解决办法
    Q查询
    ManyToMany参数(through,db_constraint)
    formset批量处理form表单数据
    modelform动态显示select标签的对象范围
    request对象的常用属性和方法
    Django查询orm的前一天,前一周,一个月的数据
    render的几个应用
  • 原文地址:https://www.cnblogs.com/hehexiaoxia/p/4229241.html
Copyright © 2011-2022 走看看