excel spreadsheets

查找某个cell的值

import openpyxl as xl
wb = xl.load_workbook('transactions.xlsx')
sheet = wb['Sheet1']
cell = sheet['a1']
cell = sheet.cell(1,1)
print(cell.value)

最大行数

print(sheet.max_row)

利用for loop遍历某一列的值

import openpyxl as xl
wb = xl.load_workbook('transactions.xlsx')
sheet = wb['Sheet1']

for row in range(2, sheet.max_row + 1):
    cell = sheet.cell(row, 3)
    print(cell.value)

修改一列的值,并创建为新的一列

import openpyxl as xl
wb = xl.load_workbook('transactions.xlsx')
sheet = wb['Sheet1']

for row in range(2, sheet.max_row + 1):
    cell = sheet.cell(row, 3)
    corrected_price = cell.value * 0.9
    corrected_price_cell = sheet.cell(row, 4)
    corrected_price_cell.value = corrected_price

wb.save('transactions2.xlsx')
  • 获取cell的值
  • 更改cell的值
  • 创建新的cell
  • 将更改后cell的值赋予新的cell
  • cell自身属性(attribute)

加上图表

import openpyxl as xl
from openpyxl.chart import BarChart, Reference

wb = xl.load_workbook('transactions.xlsx')
sheet = wb['Sheet1']

for row in range(2, sheet.max_row + 1):
    cell = sheet.cell(row, 3)
    corrected_price = cell.value * 0.9
    corrected_price_cell = sheet.cell(row, 4)
    corrected_price_cell.value = corrected_price

values = Reference(sheet,
          min_row=2,
          max_row=sheet.max_row,
          min_col=4,
          max_col=4)
chart = BarChart()
chart.add_data(values)
sheet.add_chart(chart, 'e2')

wb.save('transactions2.xlsx')

定义为一个函数,设置参数
实现自动化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用ODBC连接来操作WPS的Excel文件需要进行以下几个步骤: 1. 安装WPS的ODBC驱动程序,这个驱动程序在WPS安装目录下的ODBC文件夹中,安装过程类似于安装其他软件,在安装过程中需要选择安装ODBC驱动程序。 2. 创建ODBC数据源: 打开“控制面板”->“管理工具”->“数据源(ODBC)”->“系统DSN”->“添加”,选择“WPS Spreadsheets ODBC”作为驱动程序,设置数据源名称和文件路径,完成创建。 3. 使用ODBC连接操作Excel文件: C++代码示例: ```c++ #include <iostream> #include <windows.h> #include <sql.h> #include <sqlext.h> using namespace std; int main() { SQLHENV hEnv; SQLHDBC hDbc; SQLHSTMT hStmt; SQLRETURN retcode; // 初始化环境句柄 retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv); if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) { cout << "Error Allocating Environment Handle" << endl; return -1; } // 设置ODBC版本为3.0 retcode = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) { cout << "Error Setting Environment Attribute" << endl; SQLFreeHandle(SQL_HANDLE_ENV, hEnv); return -1; } // 初始化连接句柄 retcode = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc); if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) { cout << "Error Allocating Connection Handle" << endl; SQLFreeHandle(SQL_HANDLE_ENV, hEnv); return -1; } // 连接Excel文件 retcode = SQLConnect(hDbc, (SQLCHAR*)"WPS Spreadsheets ODBC", SQL_NTS, NULL, 0, NULL, 0); if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) { cout << "Error Connecting to WPS Spreadsheets ODBC" << endl; SQLFreeHandle(SQL_HANDLE_DBC, hDbc); SQLFreeHandle(SQL_HANDLE_ENV, hEnv); return -1; } // 执行SQL语句 retcode = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) { cout << "Error Allocating Statement Handle" << endl; SQLDisconnect(hDbc); SQLFreeHandle(SQL_HANDLE_DBC, hDbc); SQLFreeHandle(SQL_HANDLE_ENV, hEnv); return -1; } retcode = SQLExecDirect(hStmt, (SQLCHAR*)"SELECT * FROM [Sheet1$]", SQL_NTS); if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) { cout << "Error Executing SQL Statement" << endl; SQLFreeHandle(SQL_HANDLE_STMT, hStmt); SQLDisconnect(hDbc); SQLFreeHandle(SQL_HANDLE_DBC, hDbc); SQLFreeHandle(SQL_HANDLE_ENV, hEnv); return -1; } // 处理结果集 SQLCHAR col1[256], col2[256]; SQLLEN cbCol1, cbCol2; retcode = SQLBindCol(hStmt, 1, SQL_C_CHAR, col1, 256, &cbCol1); retcode = SQLBindCol(hStmt, 2, SQL_C_CHAR, col2, 256, &cbCol2); while (SQLFetch(hStmt) != SQL_NO_DATA) { cout << "Col1: " << col1 << ", Col2: " << col2 << endl; } // 释放句柄 SQLFreeHandle(SQL_HANDLE_STMT, hStmt); SQLDisconnect(hDbc); SQLFreeHandle(SQL_HANDLE_DBC, hDbc); SQLFreeHandle(SQL_HANDLE_ENV, hEnv); return 0; } ``` 该示例代码连接到WPS的Excel文件,并查询Sheet1工作表中的所有数据。需要注意的是,SQL语句中工作表名称需要用中括号括起来,并且以$符号结尾。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值