我通过数据采集卡获得浮点型波形数据,现想将其导出到CSV文件中去,不知怎么实现!
请各位大大指点一下,有代码实例最好!
谢谢

解决方案 »

  1.   

    csv可以直接当excel方式来处理,C#使用excel相关类等来操作csv文件
     二维数组赋值给单元格
    或遍历数组,filestream,streamwriter写数组
      

  2.   

    DataGridView数据集 导入到csv        /// <summary>
            /// 保存文件
             /// </summary>
            /// <param name="obj">DataGridView数据集</param>
            /// <param name="sTitle">文件名</param>
            /// <param name="bChart">是否包括图表</param>
            /// <returns>导出成功与否</returns>
            public bool Save(DataGridView obj, string sTitle, bool bChart)
            {
                if (object.Equals(obj, null))
                    return false;            if (obj.Columns.Count == 0 || obj.Rows.Count == 0)
                {
                    MessageBox.Show("没有需要保存的数据", "错误", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return false;
                }            SaveFileDialog dlg = new SaveFileDialog();
                dlg.Title = "保存数据";
                dlg.Filter = "Excel文件(*.xls)|*.xls|CSV文件(*.csv)|*.csv|TxT文件(*.txt)|*.txt";
                dlg.FilterIndex = 1;
                dlg.OverwritePrompt = true;
                dlg.DefaultExt = "xls";
                dlg.FileName = sTitle;
                dlg.InitialDirectory = string.IsNullOrEmpty(sLastpath) ? Application.StartupPath : sLastpath;
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    Step(0);
                    sLastpath = dlg.FileName.Substring(0, dlg.FileName.LastIndexOf('\\'));
                    if (dlg.FilterIndex == 1)
                    {
                        return SaveInExcel(obj, sTitle, dlg.FileName, bChart);
                    }
                    else
                    {
                        using (Stream fs = dlg.OpenFile())
                        {
                            using (StreamWriter fw = new StreamWriter(fs))
                            {
                                StringBuilder st = new StringBuilder();
                                List<int> indexList = new List<int>(obj.Columns.Count);
                                for (int i = 0; i < obj.Columns.Count; i++)
                                {
                                    indexList.Insert(obj.Columns[i].DisplayIndex, i);
                                }                            Step(5);
                                foreach (var i in indexList)
                                {
                                    st.Append(obj.Columns[i].HeaderText + "\t");
                                }
                                fw.WriteLine(st);
                                Step(10);
                                StringBuilder sc = null;
                                for (int i = 0; i < obj.Rows.Count; i++)
                                {
                                    sc = new StringBuilder();
                                    foreach (var j in indexList)
                                    {
                                        sc.Append(obj.Rows[i].Cells[j].Value.ToString() + "\t");
                                    }                                Step(90 / obj.Rows.Count * i);
                                    fw.WriteLine(sc);
                                    sc = null;
                                }
                            }
                        }                    Step(100);
                        return true;
                    }
                }            return false;
            }
      

  3.   

    可惜的是我的VS版本为2003的 没有datagridview类
     对VS2003来说是将浮点型数组保存到Datatable中去吗?不保存可以吗?
    谢谢
      

  4.   


    那需不需要添加excel的COM组件?
    其实我就是想简单地把一浮点型数组保存到文件中去  保存为CSV可以用Excel打开 然后利用其插入图表功能 绘制波形图 验证数据采集的结果如何