首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

Excel导数据导出来格式不对解决办法

2013-09-08 
Excel导数据导出来格式不对for (i 0 i Car_count.Count+1 i++){xSheet.Cells[i + 2, 1] VIN[i].To

Excel导数据导出来格式不对
  for (i = 0; i < Car_count.Count+1; i++)
                {

                    xSheet.Cells[i + 2, 1] = VIN[i].ToString(); 
                    xSheet.Cells[i + 2, 2] = CarCode[i].ToString();
                    xSheet.Cells[i + 2, 3] = GetTime[i].ToString().Trim();
                    xSheet.Cells[i + 2, 4] = Torque[i].ToString();
                    xSheet.Cells[i + 2, 5] = Angle[i].ToString();
                    xSheet.Cells[i + 2, 6] = OkFlag[i].ToString(); 
VINCarTypeGetTimeTorqueAngleOkFlag
C5201371635854SK253_14138342891
C5201371635856SK253_14138342891
C5201371635855SK253_14138342891
C5201371635857SK253_1413834289
上面是我的C#代码,下面是结果,发现时间没导出来,这怎么班,急。。。 c# excel 数据
[解决办法]
本帖最后由 caozhy 于 2013-08-30 22:34:03 编辑 下一个断点,看GetTime[i]是什么。
[解决办法]
 public DataTable LoadExcel(string pPath)
        {
            //Driver={Driver do Microsoft Excel(*.xls)} 这种连接写法不需要创建一个数据源DSN,DRIVERID表示驱动ID,Excel2003后都使用790,FIL表示Excel文件类型,Excel2007用excel 8.0,MaxBufferSize表示缓存大小,DBQ表示读取Excel的文件名(全路径)
            //string strCon = "   Provider   =   Microsoft.ACE.OLEDB.12.0   ;   Data   Source   =   " + pPath + ";Extended   Properties=Excel   8.0";


            string strCon = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'", pPath);
            OleDbConnection myConn = new OleDbConnection(strCon);


            //string strCom = "   SELECT   *   FROM   [Sheet1$]   "; 
            //string connString = "Driver={Driver do Microsoft Excel(*.xls)};DriverId=790;SafeTransactions=0;ReadOnly=1;MaxScanRows=16;Threads=3;MaxBufferSize=2024;UserCommitSync=Yes;FIL=excel 8.0;PageTimeout=5;";
            //connString += "DBQ=" + pPath;
            //OdbcConnection conn = new OdbcConnection(connString);
            //OdbcCommand cmd = new OdbcCommand();
            //cmd.Connection = conn;
            //获取Excel中第一个Sheet名称,作为查询时的表名
            string sheetName = this.GetExcelSheetName(pPath);
            string sql = "select * from [" + sheetName.Replace('.', '#') + "$]";
            //cmd.CommandText = sql;
            myConn.Open();
            OleDbDataAdapter da = new OleDbDataAdapter(sql, myConn);
            //OdbcDataAdapter da = new OdbcDataAdapter(cmd);
            DataSet ds = new DataSet();
            try
            {
                da.Fill(ds);
                return ds.Tables[0];
            }


            catch (Exception x)
            {
                ds = null;
                ErrorFrame eFrame = new ErrorFrame("从Excel文件中获取数据时发生错误!");
                eFrame.ShowDialog();
                //throw new Exception("从Excel文件中获取数据时发生错误!");
                return new System.Data.DataTable();
            }
            finally
            {
                myConn.Close();
                //cmd.Dispose();
                //cmd = null;
                //da.Dispose();
                //da = null;
                //if (conn.State == ConnectionState.Open)
                //{
                //    conn.Close();
                //}
                //conn = null;
            }
        }
http://blog.csdn.net/rui_china/article/details/10405069
[解决办法]
Excel宽度不够时显示得就是### 这拉宽一下看看.

热点排行