首页 > 解决方案 > C# OleDB,从 Excel 导入,格式错误

问题描述

我使用 OleDB 从 Excel 导入 DataGridView。我正在导入的单元格具有此字符串“01/01/2029”,但是当我使用 OleDB 导入 DataGridView 时,当我想保留它时,该字符串将转换为 DateTime“01/01/2029 0:00:00”字符串使用他的原始格式“01/01/2029”。我试图转换它和一堆东西,我找不到解决方案......谁能找到问题出在哪里?

string filePath = openFileDialog1.FileName;
        string extension = Path.GetExtension(filePath);
        string header = "YES";
        string conStr, sheetName;

        conStr = string.Empty;
        switch (extension)
        {

            case ".xls":
                conStr = string.Format(Excel03ConString, filePath, header);
                break;

            case ".xlsx":
                conStr = string.Format(Excel07ConString, filePath, header);
                break;
        }

        using (OleDbConnection con = new OleDbConnection(conStr))
        {
            using (OleDbCommand cmd = new OleDbCommand())
            {
                cmd.Connection = con;
                con.Open();
                DataTable dtExcelSchema = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                sheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
                con.Close();
            }
        }

        using (OleDbConnection con = new OleDbConnection(conStr))
        {
            using (OleDbCommand cmd = new OleDbCommand())
            {
                using (OleDbDataAdapter oda = new OleDbDataAdapter())
                {
                    DataTable dt = new DataTable();
                    cmd.CommandText = "SELECT * From [" + sheetName + "]";
                    cmd.Connection = con;
                    con.Open();
                    oda.SelectCommand = cmd;
                    oda.Fill(dt);
                    con.Close();

                    dataGridView1.DataSource = dt;
                }
            }
        }

标签: c#datagridviewoledb

解决方案



推荐阅读