读书人

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

发布时间: 2013-09-08 15:21:21 作者: rapoo

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宽度不够时显示得就是### 这拉宽一下看看.

读书人网 >C#

热点推荐