• 导入excle数据


    导入excle数据

    1.if (File.Exists(strFileName)) // 当文件存在时
                {
                    m_fileName = strFileName;
                }
                else
                {
                    throw new Exception(string.Format("文件:[{0}] 不存在!", m_fileName));
                }
                this.gridView.DataSource = ExcelToDataTable(m_fileName, "Sheet1");

    2.

     /// <summary>
            /// 将Excel导入DataTable中(Excel第一行为DataTable列名)
            /// </summary>
            /// <param name="filePath"></param>
            /// <param name="sheetName"></param>
            /// <returns></returns>
            private System.Data.DataTable ExcelToDataTable(string filePath, string sheetName)
            {
                ApplicationClass app = new ApplicationClass();
                app.Visible = false;

                //打开Excel
                WorkbookClass w = (WorkbookClass)app.Workbooks.Open(filePath, Missing.Value, Missing.Value, Missing.Value,
                    Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                    Missing.Value, Missing.Value, Missing.Value, Missing.Value);

                object missing = Type.Missing;
                Sheets sheets = w.Worksheets;
                m_dataTable = new System.Data.DataTable();

                foreach (Worksheet sheet in sheets)
                {
                    if (sheet.Name != sheetName)
                    {
                        //构建DataTable结构
                        for (int j = 1; j <= sheet.Cells.CurrentRegion.Columns.Count; j++)
                        {
                            //Excel第一行数据为DataTable列名
                            Microsoft.Office.Interop.Excel.Range tem = (Microsoft.Office.Interop.Excel.Range)sheet.Cells[1, j];
                            m_dataTable.Columns.Add(tem.Text.ToString());
                        }
                        //Excel数据加载到DataTable
                        for (int i = 2; i <= sheet.Cells.CurrentRegion.Rows.Count; i++)
                        {
                            DataRow row = m_dataTable.NewRow();
                            for (int j = 1; j <= sheet.Cells.CurrentRegion.Columns.Count; j++)
                            {
                                Microsoft.Office.Interop.Excel.Range tem = (Microsoft.Office.Interop.Excel.Range)sheet.Cells[i, j];
                                row[j - 1] = tem.Text.ToString();
                            }
                            m_dataTable.Rows.Add(row);
                        }
                        break;
                    }
                }
                app.Quit();
                app = null;

                return m_dataTable;
            }

  • 相关阅读:
    SQL 从查询结果里查询
    c++函数返回局部变量
    《Android源代码设计模式解析与实战》读书笔记(二十)
    也谈学习
    Ejb in action(一)——开篇介绍
    Re-ID with Triplet Loss
    AFNetworking、ASIHTTPRequest中SSL的使用
    BZOJ 1982: [Spoj 2021]Moving Pebbles [博弈论 对称]
    BZOJ 3895: 取石子[SG函数 搜索]
    BZOJ 2463: [中山市选2009]谁能赢呢?[智慧]
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3198796.html
Copyright © 2020-2023  润新知