{
std::string errorInfo = "创建表'" + tableName + "'中的字段时出现无法识别字段或空字段.";
MessageBox(NULL, errorInfo.c_str(), "错误", MB_OK);
return FALSE;
}
SQL += ws2s(cell->GetWString()) ;
SQL += c < maxCols - 1 " varchar(128)," : " varchar(128)";
}
SQL += ")";
res = sqlite3_exec(db , SQL.c_str() ,0 ,0, &errMsg);
if (res != SQLITE_OK)
{
std::string errorInfo = "执行创建table的SQL 出错.";
errorInfo += errMsg;
MessageBox(NULL, errorInfo.c_str(), "错误", MB_OK);
return FALSE;
}
else
{
std::cout << "创建table的SQL成功执行."<< std::endl;
}
return TRUE;
}
// ======================================================================================
int XlsToSqlite::insertValue(YExcel::BasicExcelWorksheet* sheet)
{
// 得到行和列的数量
std::string tableName = ws2s(sheet->GetUnicodeSheetName());
size_t maxRows = sheet->GetTotalRows();
size_t maxCols = sheet->GetTotalCols();
char* errMsg = NULL;
ASSERT(maxCols > 0);
// 得到键值
std::string cellString;
char tmpStr[256] = {0};
for (size_t r=1; r
std::string SQL = "INSERT INTO " + tableName + " VALUES (";
for (size_t c = 0; c < maxCols; ++c)
BasicExcelCell* cell = sheet->Cell(r,c);
cellString.clear();
switch (cell->Type())
{
case BasicExcelCell::UNDEFINED:
printf(" ");
break;
case BasicExcelCell::INT:
sprintf(tmpStr, "%10d", cell->GetInteger());
cellString = tmpStr;
break;
case BasicExcelCell::DOUBLE:
sprintf(tmpStr, "%10.6lf", cell->GetDouble());
cellString = tmpStr;
break;
case BasicExcelCell::STRING:
sprintf(tmpStr, "%10s", cell->GetString());
cellString = tmpStr;
break;
case BasicExcelCell::WSTRING:
cellString = ws2s(cell->GetWString());
break;
}
cellString = c < maxCols - 1 && !cellString.empty() "'" + cellString + "'," : "'" + cellString + "'";
SQL += cellString;
}
SQL += ")";
int res = sqlite3_exec(db , SQL.c_str() ,0 ,0, &errMsg);
if (res != SQLITE_OK)
{
std::cout << "执行创建table的SQL 出错." << errMsg << std::endl;
return FALSE;
}
}
return TRUE;
}
作者:wzq9706