日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

直接通过ODBC读写Excel表格文件 译者:徐景周(原作:Alexander Mikula)

發布時間:2023/12/16 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 直接通过ODBC读写Excel表格文件 译者:徐景周(原作:Alexander Mikula) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

直接通過ODBC讀寫Excel表格文件
譯者:徐景周(原作:Alexander Mikula)


下載本文示例代碼


想要通過ODBC直接讀、寫Excel表格文件,首先,應確保ODBC中已安裝有Excel表格文件的驅動"MICROSOFT EXCEL DRIVER (*.XLS)"。然后,可根據下面步驟進行:


?1. 在StdAfx.h文件中加入:


#include <afxdb.h>?
#include <odbcinst.h>
?2. 通過ODBC直接創建Excel文件并在表中插入數據(暫定文件名:Demo.xls)
//創建并寫入Excel文件
void CRWExcel::WriteToExcel()
{
? CDatabase database;
? CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安裝驅動
? CString sExcelFile = "c:\\demo.xls"; ? ? ? ? ? ? ? ?// 要建立的Excel文件
? CString sSql;
? ??
? TRY
? {
? ? // 創建進行存取的字符串
? ? sSql.Format("DRIVER={%s};DSN='''';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",
? ? ? ? ? ? ? ? sDriver, sExcelFile, sExcelFile);


? ? // 創建數據庫 (既Excel表格文件)
? ? if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
? ? {
? ? ? // 創建表結構(姓名、年齡)
? ? ? sSql = "CREATE TABLE demo (Name TEXT,Age NUMBER)";
? ? ? database.ExecuteSQL(sSql);


? ? ? // 插入數值
? ? ? sSql = "INSERT INTO demo (Name,Age) VALUES (''徐景周'',26)";
? ? ? database.ExecuteSQL(sSql);


? ? ? sSql = "INSERT INTO demo (Name,Age) VALUES (''徐志慧'',22)";
? ? ? database.ExecuteSQL(sSql);


? ? ? sSql = "INSERT INTO demo (Name,Age) VALUES (''郭徽'',27)";
? ? ? database.ExecuteSQL(sSql);
? ? } ? ? ?


? ? // 關閉數據庫
? ? database.Close();
? }
? CATCH_ALL(e)
? {
? ? TRACE1("Excel驅動沒有安裝: %s",sDriver);
? }
? END_CATCH_ALL;
}
?3. 通過ODBC直接讀取Excel文件(暫定文件名:Demo.xls)
// 讀取Excel文件
void CRWExcel::ReadFromExcel()?
{
? ? CDatabase database;
? ? CString sSql;
? ? CString sItem1, sItem2;
? ? CString sDriver;
? ? CString sDsn;
? ? CString sFile = "Demo.xls"; // 將被讀取的Excel文件名
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? // 檢索是否安裝有Excel驅動 "Microsoft Excel Driver (*.xls)"?
? ? sDriver = GetExcelDriver();
? ? if (sDriver.IsEmpty())
? ? {
? ? ? ? // 沒有發現Excel驅動
? ? ? ? AfxMessageBox("沒有安裝Excel驅動!");
? ? ? ? return;
? ? }
? ??
? ? // 創建進行存取的字符串
? ? sDsn.Format("ODBC;DRIVER={%s};DSN='''';DBQ=%s", sDriver, sFile);


? ? TRY
? ? {
? ? ? ? // 打開數據庫(既Excel文件)
? ? ? ? database.Open(NULL, false, false, sDsn);
? ? ? ??
? ? ? ? CRecordset recset(&database);


? ? ? ? // 設置讀取的查詢語句.
? ? ? ? sSql = "SELECT Name, Age " ? ? ??
? ? ? ? ? ? ? ?"FROM region" ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ?"ORDER BY Name "; ? ?//注: region必須為excel中的單元格區域名才可以。如果是工作表名的話會出錯。
? ??
? ? ? ? // 執行查詢語句
? ? ? ? recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);


? ? ? ? // 獲取查詢結果
? ? ? ? while (!recset.IsEOF())
? ? ? ? {
? ? ? ? ? ? //讀取Excel內部數值
? ? ? ? ? ? recset.GetFieldValue("Name ", sItem1);
? ? ? ? ? ? recset.GetFieldValue("Age", sItem2);


? ? ? ? ? ? // 移到下一行
? ? ? ? ? ? recset.MoveNext();
? ? ? ? }


? ? ? ? // 關閉數據庫
? ? ? ? database.Close();
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? }
? ? CATCH(CDBException, e)
? ? {
? ? ? ? // 數據庫操作產生異常時...
? ? ? ? AfxMessageBox("數據庫錯誤: " + e->m_strError);
? ? }
? ? END_CATCH;
}
?4. 獲取ODBC中Excel驅動的函數
CString CRWExcel::GetExcelDriver()
{
? ? char szBuf[2001];
? ? WORD cbBufMax = 2000;
? ? WORD cbBufOut;
? ? char *pszBuf = szBuf;
? ? CString sDriver;


? ? // 獲取已安裝驅動的名稱(涵數在odbcinst.h里)
? ? if (!SQLGetInstalledDrivers(szBuf, cbBufMax, &cbBufOut))
? ? ? ? return "";
? ??
? ? // 檢索已安裝的驅動是否有Excel...
? ? do
? ? {
? ? ? ? if (strstr(pszBuf, "Excel") != 0)
? ? ? ? {
? ? ? ? ? ? //發現 !
? ? ? ? ? ? sDriver = CString(pszBuf);
? ? ? ? ? ? break;
? ? ? ? }
? ? ? ? pszBuf = strchr(pszBuf, ''\0'') + 1;
? ? }
? ? while (pszBuf[1] != ''\0'');


? ? return sDriver;
}

總結

以上是生活随笔為你收集整理的直接通过ODBC读写Excel表格文件 译者:徐景周(原作:Alexander Mikula)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品aⅴ | 久久精品国产亚洲7777 | 极品久久久久 | 在线看片你懂得 | 快色污 | www色网| 久久久.www| 涩涩视频在线观看免费 | 青青青在线免费观看 | 69av网 | 婷婷五月综合激情 | 全部孕妇毛片丰满孕妇孕交 | 在线免费看av的网站 | 久久精品欧美一区二区 | 亚洲草逼| 色吟av| 日韩精品视频免费播放 | 日本三级一区二区三区 | 毛片av在线播放 | 真实的国产乱xxxx在线 | 国产一区二区综合 | 97免费视频观看 | 国产日产欧美 | 最新视频在线观看 | 狠狠干b| 日本韩国视频 | 粗口调教gay2022.com | 成人在线免费视频观看 | 亚洲精品乱码久久久久久久 | 国产伦精品一区二区三区精品 | 又黄又爽的免费视频 | 一区二区亚洲 | 亚洲精品久久久久久久久久 | 韩国三级做爰高潮 | 美女狂揉羞羞的视频 | 亚洲av综合色区无码一二三区 | 性色欲网站人妻丰满中文久久不卡 | 国产欧美一区二区三区白浆喷水 | 苍井空亚洲精品aa片在线播放 | 免费毛片一区二区三区 | 日韩av网站在线 | 国产精品午夜视频 | 日本东京热一区二区三区 | 视频一区在线免费观看 | 国产不卡视频 | 亚洲人成人网 | 国产免费av一区二区三区 | 日韩精品免费一区二区 | 啪啪网视频 | 小辣椒导航 | 中文字幕精品在线视频 | 貂蝉被到爽流白浆在线观看 | 国产a级黄色片 | 久久激情影院 | 午夜影院久久久 | 香蕉久久夜色精品国产使用方法 | 久久久久久久综合色一本 | 中文字幕av在线免费观看 | 日本免费爱爱视频 | 亚洲第十页 | 少妇裸体挤奶汁奶水视频 | 久久大香焦 | 日韩视频在线视频 | 亚洲色图视频网站 | 精品久久久久久久免费人妻 | 狠狠操操 | 国产欧美一区二区视频 | 男女猛烈无遮挡 | 久久久91精品| 成a人v| 欧美精品免费视频 | 玖玖爱精品 | 亚洲电影在线观看 | 国产一区二区三区视频 | 久久精品一区二区免费播放 | 未满十八岁禁止进入 | 日本免费一二区 | 久久久久久91亚洲精品中文字幕 | 最近免费中文字幕大全免费版视频 | 国产精品91av | 怡红院男人的天堂 | 黄色a在线 | aaa黄色大片 | 精品人妻视频在线 | 国产98色在线 | 日韩 | 动漫女被黄漫免费视频 | 国产视频在线观看视频 | 少妇大叫太粗太大爽一区二区 | 午夜精 | 欧美黑人精品 | 色戒电影未测减除版 | 神马久久久久久久久久 | 欧美日韩二区三区 | 日本a级黄色| 国产伊人久久 | 欧美黑人多人双交 | 欧美日韩在线高清 | 91精品视频国产 | 日本中文字幕一区二区 |