首页后端开发ASP.NETC#中将DataGridView中的数据导入到Csv文件及导出到Excel

C#中将DataGridView中的数据导入到Csv文件及导出到Excel

时间2024-01-30 23:19:02发布访客分类ASP.NET浏览882
导读:收集整理的这篇文章主要介绍了C#中将DataGridView中的数据导入到Csv文件及导出到Excel,觉得挺不错的,现在分享给大家,也给大家做个参考。1,将DataGridView中的数据导入到Csv文件中 public static b...
收集整理的这篇文章主要介绍了C#中将DataGridView中的数据导入到Csv文件及导出到Excel,觉得挺不错的,现在分享给大家,也给大家做个参考。1,将DataGridView中的数据导入到Csv文件中

 public static bool dataGridViewToCSV(DataGridView dataGridView)        {
            if (dataGridView.Rows.Count == 0)            {
                    MessageBox.Show("没有数据可导出!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return false;
            }
                SaveFileDiaLOG saveFileDialog = new SaveFileDialog();
                saveFileDialog.Filter = "CSV files (*.csv)|*.csv";
                saveFileDialog.FilterIndex = 0;
                saveFileDialog.ReStoreDirectory = true;
                saveFileDialog.CreatePrompt = true;
                saveFileDialog.FileName = null;
                saveFileDialog.TITle = "保存";
            if (saveFileDialog.ShowDialog() == DialogResult.OK)            {
                    Stream stream = saveFileDialog.OPEnFile();
                    StreamWriter sw = new StreamWriter(stream, System.Text.Encoding.GetEncoding(-0));
                    string strLine = "";
                try                {
                        //表头                    for (int i = 0;
     i  dataGridView.ColumnCount;
 i++)                    {
                            if (i >
     0)                            strLine += ",";
                            strLine += dataGridView.Columns[i].HeaderText;
                    }
                        strLine.Remove(strLine.Length - 1);
                        sw.WriteLine(strLine);
                        strLine = "";
                        //表的内容                    for (int j = 0;
     j  dataGridView.Rows.Count;
 j++)                    {
                            strLine = "";
                            int colCount = dataGridView.Columns.Count;
                            for (int k = 0;
     k  colCount;
 k++)                        {
                                if (k >
     0 &
    &
     k  colCount)                                strLine += ",";
                                if (dataGridView.Rows[j].Cells[k].Value == null)                                strLine += "";
                            else                            {
                                    string cell = dataGridView.Rows[j].Cells[k].Value.ToString().Trim();
                                    //防止里面含有特殊符号                                cell = cell.Replace("\"", "\"\"");
                                    cell = "\"" + cell + "\"";
                                    strLine += cell;
                            }
                        }
                            sw.WriteLine(strLine);
                    }
                        sw.Close();
                        stream.Close();
                        MessageBox.Show("数据被导出到:" + saveFileDialog.FileName.ToString(), "导出完毕", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception ex)                {
                        MessageBox.Show(ex.Message, "导出错误", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return false;
                }
            }
                return true;
        }
    

2,C#中将DataGridView中的数据导出到Excel中

public static bool dataGridViewToExcel(DataGridView dataGridView)        {
            if (dataGridView.Rows.Count == 0)            {
                    MessageBox.Show("没有数据可导出!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return false;
            }
                string fileName = "";
                string saveFileName = "";
                SaveFileDialog saveDialog = new SaveFileDialog();
                saveDialog.DefaultExt = "xlsx";
                saveDialog.Filter = "Excel文件|*.xlsx";
                saveDialog.FileName = fileName;
                saveDialog.ShowDialog();
                saveFileName = saveDialog.FileName;
                if (saveFileName.IndexOf(":")  0)                return false;
     //被点了取消            Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
            if (xlApp == null)            {
                    MessageBox.Show("无法创建Excel对象,您的电脑可能未安装Excel");
                    return false;
            }
                Microsoft.Office.Interop.Excel.WorkBooks workbooks = xlApp.Workbooks;
                Microsoft.Office.Interop.Excel.Workbook workbook =                        workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
                Microsoft.Office.Interop.Excel.Worksheet worksheet =                        (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];
    //取得sheet1                                                                                          //写入标题                         for (int i = 0;
     i  dataGridView.ColumnCount;
 i++)            {
     worksheet.Cells[1, i + 1] = dataGridView.Columns[i].HeaderText;
 }
                //写入数值            for (int r = 0;
     r  dataGridView.Rows.Count;
 r++)            {
                    for (int i = 0;
     i  dataGridView.ColumnCount;
 i++)                {
                        worksheet.Cells[r + 2, i + 1] = dataGridView.Rows[r].Cells[i].Value;
                }
                    System.Windows.Forms.Application.DoEvents();
            }
                worksheet.Columns.EntireColumn.AutoFit();
    //列宽自适应            MessageBox.Show(fileName + "资料保存成功", "提示", MessageBoxButtons.OK);
            if (saveFileName != "")            {
                try                {
                        workbook.Saved = true;
                        workbook.SaveCopyAs(saveFileName);
      //fileSaved = true;
                                 }
                catch (Exception ex)                {
    //fileSaved = false;
                                              MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);
                }
            }
                xlApp.Quit();
                Kill(xlApp);
                GC.Collect();
    //强行销毁                  return true;
        }
    
//*********************************************************************************************//        //*功能:当使用Excel.Application方法的时候,系统会自动创建一个Excel进程,即使当你使用Excel.Quit()之后,也是不会关闭的。        //*参数:通过进程ID来唯一标识我们自己创建的进程,然后在关闭Excel.Application的时候一同将进程Kill掉。        //*返回值:无        //*时间:2018-04-25        //**********************************************************************************************//        public static void Kill(Microsoft.Office.Interop.Excel.Application excel)        {
                IntPtr t = new IntPtr(excel.Hwnd);
                int k = 0;
                GetWindowThreadPRocessId(t, out k);
                System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k);
                p.Kill();
        }
    

相关推荐:

C#创建Excel文件并将数据导出到Excel文件的示例代码详解

c# 将Datatable数据导出到Excel表格中的示例代码分享

以上就是C#中将DataGridView中的数据导入到Csv文件及导出到Excel的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

C#

若转载请注明出处: C#中将DataGridView中的数据导入到Csv文件及导出到Excel
本文地址: https://pptw.com/jishu/593171.html
深度解析C++的函数模板与类模板 jquery怎样修改某一行的值

游客 回复需填写必要信息