设为首页 加入收藏

TOP

使用odbc读写excel类: (2) 源文件 (四)
2014-11-23 23:11:43 来源: 作者: 【 】 浏览:9
Tags:使用 odbc 读写 excel 源文件
{
239 return false;
240 }
241 //$A1:IV65536
242 strSQL.Format(_T("CREATE TABLE [%s$A1:IV65536] ("), m_strName);
243 for (int i = 0; i < m_dwCols; ++i)
244 {
245 strSQL += _T("[") + m_ColHeaders.GetAt(i) +_T("]") + _T(" char(255), ");
246 }
247 strSQL.Delete(strSQL.GetLength()-2, 2);
248 strSQL += _T(")");
249 try
250 {
251 m_Excel.m_db.ExecuteSQL(strSQL);
252 }
253 catch (CDBException* e)
254 {
255 return false;
256 }
257 UpdateCells();
258 }
259 break;
260
261 case Add:
262 {
263 strSQL.Format(_T("CREATE TABLE [%s] ("), m_strName);
264 for (int i = 0; i < m_dwCols; ++i)
265 {
266 strSQL += _T("[") + m_ColHeaders.GetAt(i) +_T("]") + _T(" char(255), ");
267 }
268 strSQL.Delete(strSQL.GetLength()-2, 2);
269 strSQL += _T(")");
270 try
271 {
272 m_Excel.m_db.ExecuteSQL(strSQL);
273 }
274 catch (CDBException* e)
275 {
276 return false;
277 }
278 UpdateCells();
279 }
280 break;
281
282 case Delete:
283 {
284 strSQL.Format (_T("DROP TABLE [%s$A1:IV65536]"), m_strName);
285 try
286 {
287 m_Excel.m_db.ExecuteSQL(strSQL);
288 }
289 catch (CDBException* e)
290 {
291 return false;
292 }
293 }
294 break;
295 }
296 return true;
297}
298
299bool CODBCExcelSheet::UpdateCells()
300{
301 CString strSQL, strSQLCol;
302 for (DWORD dwRow = 0, dwCol; dwRow < m_dwRows; ++dwRow)
303 {
304 strSQL.Format(_T("INSERT INTO [%s$A1:IV%d] ("), m_strName, dwRow+1);
305 for (dwCol = 0; dwCol < m_dwCols; ++dwCol)
306 {
307 strSQLCol.Format(_T("[%s], "), m_ColHeaders.GetAt(dwCol));
308 strSQL += strSQLCol;
309 }
310 strSQL.Delete(strSQL.GetLength()-2, 2);
311 strSQL += _T(") VALUES (");
312 for (dwCol = 0; dwCol < m_dwCols; ++dwCol)
313 {
314 strSQLCol.Format(_T("'%s', "), Cell(dwRow, dwCol)->GetText());
315 strSQL += strSQLCol;
316 }
317 strSQL.Delete(strSQL.GetLength()-2, 2);
318 strSQL += _T(")");
319 try
320 {
321 m_Excel.m_db.ExecuteSQL(strSQL);
322 }
323 catch (CDBException* e)
324 {
325 return false;
326 }
327 }
328 return true;
329}
330
331void CODBCExcelSheet::ResetCells()
332{
333 for (DWORD dwRow = 0; dwRow < m_dwRows; ++dwRow)
334 {
335 for (DWORD dwCol = 0; dwCol < m_dwCols; ++dwCol)
336 {
337 m_Cells[dwRow][dwCol].Empty();
338 }
339 }
340}
341
342//rowIndex >= 1 colIndex >= 0
343CODBCExcelCell* CODBCExcelSheet::Cell(UINT rowIndex, UINT colIndex)
344{
345 if (rowIndex > 65535 || colIndex > 255) return 0;
346 if (colIndex >= m_dwCols) return 0;
347
348 if (rowIndex >= m_dwRows)
349 {
350 m_dwRows += 1;
351 m_Cells.resize(m_dwRows);
352 for (DWORD dwRow = 0; dwRow < m_dwRows; ++dwRow)
353 {
354 m_Cells[dwRow].resize(m_dwCols);
355 for (DWORD dwCol = 0; dwCol < m_dwCols; ++dwCol)
356 {
357 m_Cells[dwRow][dwCol].SetParent(this);
358 }
359 }
36
首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇链表逆序的递归/非递归算法 下一篇使用odbc读写excel类: (1) 头文件

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: