c++如何读取excel

Feb 19, 2020 am 09:30 AM
c

c++如何读取excel

c++如何读取excel?C++ ODBC操作excel全过程

推荐:《c++教程

想要通过ODBC直接读、写Excel表格文件,首先,应确保ODBC中已安装有Excel表格文件的驱动"MICROSOFT EXCEL DRIVER (*.XLS)"。然后,可根据下面步骤进行:

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

#include <afxdb.h> 
#include <odbcinst.h>
Salin selepas log masuk

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=&#39;&#39;;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 (&#39;徐景周&#39;,26)";
database.ExecuteSQL(sSql);
sSql = "INSERT INTO demo (Name,Age) VALUES (&#39;徐志慧&#39;,22)";
database.ExecuteSQL(sSql);
sSql = "INSERT INTO demo (Name,Age) VALUES (&#39;郭徽&#39;,27)";
database.ExecuteSQL(sSql);
} 
// 关闭数据库
database.Close();
}
CATCH_ALL(e)
{
TRACE1("Excel驱动没有安装: %s",sDriver);
}
END_CATCH_ALL;
}
Salin selepas log masuk

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=&#39;&#39;;DBQ=%s", sDriver, sFile);
TRY
{
// 打开数据库(既Excel文件)
database.Open(NULL, false, false, sDsn);
CRecordset recset(&database);
// 设置读取的查询语句.
sSql = "SELECT Name, Age " 
"FROM demo " 
"ORDER BY Name ";
// 执行查询语句
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;
}
// 获取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, &#39;\0&#39;) + 1;
}
while (pszBuf[1] != &#39;\0&#39;);
return sDriver;
}
Salin selepas log masuk

更多编程相关内容,请关注php中文网编程入门栏目!

Atas ialah kandungan terperinci c++如何读取excel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah pemalar dalam bahasa C Bolehkah anda berikan contoh? Apakah pemalar dalam bahasa C Bolehkah anda berikan contoh? Aug 28, 2023 pm 10:45 PM

Pemalar juga dipanggil pembolehubah dan apabila ditakrifkan, nilainya tidak berubah semasa pelaksanaan program. Oleh itu, kita boleh mengisytiharkan pembolehubah sebagai pemalar merujuk nilai tetap. Ia juga dipanggil teks. Pemalar mesti ditakrifkan menggunakan kata kunci Const. Sintaks Sintaks pemalar yang digunakan dalam bahasa pengaturcaraan C adalah seperti berikut - consttypeVariableName; ,34, 4567 Pemalar titik terapung - Contoh: 0.0, 156.89, 23.456 Pemalar perlapanan dan Perenambelasan - Contoh: Hex: 0x2a, 0xaa.. Octal

VSCode dan VS C++ IntelliSense tidak berfungsi atau mengambil perpustakaan VSCode dan VS C++ IntelliSense tidak berfungsi atau mengambil perpustakaan Feb 29, 2024 pm 01:28 PM

Kod VS dan Visual Studio C++ IntelliSense mungkin tidak dapat mengambil perpustakaan, terutamanya apabila bekerja pada projek besar. Apabila kami menuding pada #Include&lt;wx/wx.h&gt;, kami melihat mesej ralat "Tidak boleh Membuka fail sumber 'string.h'" (bergantung pada "wx/wx.h") dan kadangkala, Fungsi autolengkap tidak bertindak balas. Dalam artikel ini kita akan melihat perkara yang boleh anda lakukan jika VSCode dan VSC++ IntelliSense tidak berfungsi atau mengekstrak perpustakaan. Mengapa Intellisense saya tidak berfungsi dalam C++? Apabila bekerja dengan fail besar, kadangkala IntelliSense

Betulkan kod ralat Xbox 8C230002 Betulkan kod ralat Xbox 8C230002 Feb 27, 2024 pm 03:55 PM

Adakah anda tidak dapat membeli atau menonton kandungan pada Xbox anda kerana kod ralat 8C230002? Sesetengah pengguna terus mendapat ralat ini apabila cuba membeli atau menonton kandungan pada konsol mereka. Maaf, terdapat masalah dengan perkhidmatan Xbox. Cuba lagi nanti. Untuk bantuan dengan isu ini, lawati www.xbox.com/errorhelp. Kod Status: 8C230002 Kod ralat ini biasanya disebabkan oleh masalah pelayan atau rangkaian sementara. Walau bagaimanapun, mungkin terdapat sebab lain, seperti tetapan privasi akaun anda atau kawalan ibu bapa, yang mungkin menghalang anda daripada membeli atau melihat kandungan tertentu. Betulkan Kod Ralat Xbox 8C230002 Jika anda menerima kod ralat 8C semasa cuba menonton atau membeli kandungan pada konsol Xbox anda

Program rekursif untuk mencari elemen minimum dan maksimum tatasusunan dalam C++ Program rekursif untuk mencari elemen minimum dan maksimum tatasusunan dalam C++ Aug 31, 2023 pm 07:37 PM

Kami mengambil tatasusunan integer Arr[] sebagai input. Matlamatnya adalah untuk mencari elemen terbesar dan terkecil dalam tatasusunan menggunakan kaedah rekursif. Memandangkan kami menggunakan rekursi, kami akan mengulangi keseluruhan tatasusunan sehingga kami mencapai panjang = 1 dan kemudian mengembalikan A[0], yang membentuk huruf asas. Jika tidak, elemen semasa dibandingkan dengan nilai minimum atau maksimum semasa dan nilainya dikemas kini secara rekursif untuk elemen berikutnya. Mari kita lihat pelbagai senario input dan output untuk −Input −Arr={12,67,99,76,32}; Nilai maksimum dalam tatasusunan: 99 Penjelasan &mi

China Eastern Airlines mengumumkan bahawa pesawat penumpang C919 akan mula beroperasi tidak lama lagi China Eastern Airlines mengumumkan bahawa pesawat penumpang C919 akan mula beroperasi tidak lama lagi May 28, 2023 pm 11:43 PM

Menurut berita pada 25 Mei, China Eastern Airlines mendedahkan perkembangan terkini pesawat penumpang C919 pada mesyuarat taklimat prestasi. Menurut syarikat itu, perjanjian pembelian C919 yang ditandatangani dengan COMAC telah berkuat kuasa secara rasmi pada Mac 2021, dan pesawat C919 pertama telah dihantar menjelang akhir 2022. Dijangkakan pesawat itu akan mula beroperasi secara rasmi tidak lama lagi. China Eastern Airlines akan menggunakan Shanghai sebagai pangkalan utamanya untuk operasi komersial C919, dan merancang untuk memperkenalkan sejumlah lima pesawat penumpang C919 pada 2022 dan 2023. Syarikat itu menyatakan bahawa rancangan pengenalan masa depan akan ditentukan berdasarkan keadaan operasi sebenar dan perancangan rangkaian laluan. Menurut pemahaman editor, C919 ialah pesawat penumpang satu lorong utama generasi baharu China dengan hak harta intelek bebas sepenuhnya di dunia, dan ia mematuhi piawaian kelayakan udara yang diterima di peringkat antarabangsa. sepatutnya

Program C++ untuk mencetak corak lingkaran nombor Program C++ untuk mencetak corak lingkaran nombor Sep 05, 2023 pm 06:25 PM

Memaparkan nombor dalam format yang berbeza adalah salah satu masalah pengekodan asas pembelajaran. Konsep pengekodan yang berbeza seperti pernyataan bersyarat dan pernyataan gelung. Terdapat program yang berbeza di mana kami menggunakan aksara khas seperti asterisk untuk mencetak segi tiga atau segi empat sama. Dalam artikel ini, kami akan mencetak nombor dalam bentuk lingkaran, sama seperti petak dalam C++. Kami mengambil bilangan baris n sebagai input dan bermula dari sudut kiri atas dan bergerak ke kanan, kemudian ke bawah, kemudian ke kiri, kemudian ke atas, kemudian ke kanan lagi, dan seterusnya dan seterusnya. Corak lingkaran dengan nombor 123456724252627282982340414243309223948494431102138474645321120373635343312191817161514

Fungsi kata kunci void dalam bahasa C Fungsi kata kunci void dalam bahasa C Feb 19, 2024 pm 11:33 PM

void dalam C ialah kata kunci khas yang digunakan untuk mewakili jenis kosong, yang bermaksud data tanpa jenis tertentu. Dalam bahasa C, void biasanya digunakan dalam tiga aspek berikut. Jenis pulangan fungsi adalah tidak sah Dalam bahasa C, fungsi boleh mempunyai jenis pulangan yang berbeza, seperti int, float, char, dll. Walau bagaimanapun, jika fungsi tidak mengembalikan sebarang nilai, jenis pulangan boleh ditetapkan kepada batal. Ini bermakna bahawa selepas fungsi itu dilaksanakan, ia tidak mengembalikan nilai tertentu. Contohnya: voidhelloWorld()

Buat pertama kali dalam 23 tahun, C# memenangi Anugerah Bahasa Pengaturcaraan Terbaik TIOBE 2023 Buat pertama kali dalam 23 tahun, C# memenangi Anugerah Bahasa Pengaturcaraan Terbaik TIOBE 2023 Jan 11, 2024 pm 04:45 PM

Menurut Indeks Komuniti Pengaturcaraan TIOBE, salah satu penanda aras untuk mengukur populariti bahasa pengaturcaraan, ia dinilai dengan mengumpul data daripada jurutera, kursus, vendor dan enjin carian di seluruh dunia. Indeks TIOBE pada Januari 2024 telah dikeluarkan baru-baru ini, dan kedudukan bahasa pengaturcaraan rasmi untuk 2023 telah diumumkan memenangi Bahasa Pengaturcaraan TIOBE 2023 Ini adalah kali pertama C# memenangi penghormatan ini dalam tempoh 23 tahun. Siaran akhbar rasmi TIOBE menyatakan bahawa C# telah berada dalam 10 teratas selama lebih daripada 20 tahun Kini ia mengejar empat bahasa utama dan telah menjadi bahasa pengaturcaraan dengan pertumbuhan terbesar dalam satu tahun (+1.43%). Memang layak untuk memenangi anugerah ini. Kedudukan kedua ialah Scratch (+0.83%) dan Fortran (+0

See all articles