C++ Excel文件读写之简便方法

 对于 文件的 读写, 当然是 文本文件 最好读,最好写,没有 什么文件结构 需要考虑。

 对于windows 下的 excel 等文件 进行操作时就不是那么容易了,大家可以搜搜 ,基本上都是都复杂的方式才能读写

关键:

      CSV 格式的文件,是一种文本文件,可以通过 C++ 的文件流简单的读写。  但是这种格式的文本文件,却是可以有 excel 默认支持的,所以用 excel 打开就是 excel文件。

代码如下;

[cpp]  view plain  copy
 
  1. #include <fstream>   
  2. #include <string>  
  3. #include <iostream>  
  4. #include <streambuf>   
  5. using namespace std;   
  6.   
  7. int main()   
  8. {           
  9.     //定义文件输出流   
  10.     ofstream oFile;   
  11.   
  12.     //打开要输出的文件   
  13.     oFile.open("scoresheet.csv", ios::out | ios::trunc);    // 这样就很容易的输出一个需要的excel 文件  
  14.     oFile << "姓名" << "," << "年龄" << "," << "班级" << "," << "班主任" << endl;   
  15.     oFile << "张三" << "," << "22" << "," << "1" << "," << "JIM" << endl;   
  16.     oFile << "李四" << "," << "23" << "," << "3" << "," << "TOM" << endl;   
  17.   
  18.     oFile.close();   
  19.       
  20.            
  21.     //打开要输出的文件   
  22.     ifstream iFile("scoresheet.csv");  
  23.     string   readStr((std::istreambuf_iterator<char>(iFile)),  std::istreambuf_iterator<char>());   
  24.      cout <<  readStr.c_str();  
  25.   
  26.       return 0;  

 

 

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
可以通过ODBC连接Excel文件,并使用SQL语句进行读写操作。 以下是一个简单的示例代码: ```cpp #include <iostream> #include <sql.h> #include <sqlext.h> int main() { // ODBC connection variables SQLHENV henv = nullptr; SQLHDBC hdbc = nullptr; SQLRETURN retcode; // Connect to ODBC driver retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, SQL_IS_INTEGER); retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); retcode = SQLConnect(hdbc, (SQLCHAR*)"Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)", SQL_NTS, (SQLCHAR*)"Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=my_excel_file.xlsx;", SQL_NTS, NULL, NULL); if (!SQL_SUCCEEDED(retcode)) { std::cout << "Error connecting to Excel file." << std::endl; return 1; } // Execute SQL statement SQLHSTMT hstmt; SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); SQLCHAR* query = (SQLCHAR*)"SELECT * FROM [Sheet1$]"; retcode = SQLExecDirect(hstmt, query, SQL_NTS); if (SQL_SUCCEEDED(retcode)) { // Fetch data SQLCHAR name[256]; SQLINTEGER age; while (SQLFetch(hstmt) == SQL_SUCCESS) { SQLGetData(hstmt, 1, SQL_C_CHAR, name, sizeof(name), NULL); SQLGetData(hstmt, 2, SQL_C_LONG, &age, 0, NULL); std::cout << name << " " << age << std::endl; } } else { std::cout << "Error executing SQL statement." << std::endl; } // Disconnect from ODBC driver SQLDisconnect(hdbc); SQLFreeHandle(SQL_HANDLE_DBC, hdbc); SQLFreeHandle(SQL_HANDLE_ENV, henv); return 0; } ``` 此代码连接到名为 `my_excel_file.xlsx` 的Excel文件,并从名为 `Sheet1` 的工作表中读取数据。你需要替换这些值以适应你的实际情况。 注意,你需要使用适当的ODBC驱动程序来连接Excel文件。在上面的示例代码中,使用了Microsoft Excel ODBC驱动程序。 此外,你需要使用适当的SQL语句来读取和写入Excel文件中的数据。在上面的示例代码中,使用了 `SELECT` 语句来读取数据。你可以使用INSERT、UPDATE和DELETE语句来写入数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LCS-312

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值