下面我将为你提供 三种最主流、最实用 的方法,并附上详细的步骤和代码示例,你可以根据自己的技术水平和需求选择最适合的一种。
使用 Python(最强大、最灵活)
Python 是金融数据分析和量化领域的首选语言,通过几个强大的库,你可以轻松获取并导出几乎所有你想要的股票数据到 Excel。
优点:
- 免费且强大:几乎可以获取任何公开的金融数据。
- 自动化:可以编写脚本,定时自动更新数据。
- 高度定制化:可以自由选择导出哪些列、哪些时间段的数据。
准备工作:
- 安装 Python:如果你的电脑没有安装,请先从 Python官网 下载并安装。
- 安装必要的库:打开你的命令行工具(如 Windows 的 CMD 或 PowerShell,macOS 的 Terminal),运行以下命令:
pip install pandas pip install tushare # 国内数据源,需要注册获取token # 或者 pip install yfinance # 国外数据源,无需token,更简单 pip install openpyxl # pandas写入Excel的引擎
示例 1:使用 yfinance 库(推荐新手,简单易用)
yfinance 是一个免费的非官方 Yahoo Finance API,无需注册,使用非常方便。
代码示例:获取贵州茅台(600519.SS)的历史行情数据并导出
import yfinance as yf
import pandas as pd
# 1. 定义股票代码
# 中国股票代码后缀 .SS (上海) 或 .SZ (深圳)
# 美国股票代码直接用,如 AAPL, TSLA
stock_code = "600519.SS"
# stock_code = "AAPL" # 也可以是美股
# 2. 下载数据
# period 可选 "1d", "5d", "1mo", "3mo", "6mo", "1y", "2y", "5y", "10y", "ytd", "max"
# interval 可选 "1m", "2m", "5m", "15m", "30m", "60m", "90m", "1h", "1d", "5d", "1wk", "1mo", "3mo"
data = yf.download(tickers=stock_code, period="1y", interval="1d")
# 3. 导出到 Excel
# 如果文件名已存在,它会覆盖
data.to_excel("贵州茅台_历史行情.xlsx")
print("数据已成功导出到 贵州茅台_历史行情.xlsx")
代码解释:
import yfinance as yf: 导入库。yf.download(...): 核心函数,用于下载股票数据,我们指定了股票代码SS(贵州茅台)、时间周期1y(1年)和数据间隔1d(每天)。data.to_excel(...): 将下载到的 Pandas DataFrame 数据直接保存为 Excel 文件。openpyxl库会自动处理 Excel 文件的创建。
示例 2:使用 tushare 库(国内数据源,更专业)
Tushare 是一个专业的国内金融数据接口,数据更全面、更及时(如包含 Level-2 行情),但需要注册官网并获取一个免费的 Token。
步骤:
- 访问 Tushare Pro 官网 注册并登录。
- 在个人中心 -> 我的接口Token 中获取你的 Token。
代码示例:
import tushare as ts
import pandas as pd
import os
# 1. 设置你的 Tushare Token
# 替换成你自己的 Token
ts.set_token('你的Tushare_Token在这里')
# 2. 初始化 pro 接口
pro = ts.pro_api()
# 3. 获取数据
# 这里以获取贵州茅台的日线行情为例
# ts_code: 股票代码, start_date: 开始日期, end_date: 结束日期
df = pro.daily(ts_code='600519.SH', start_date='20250101', end_date='20251231')
# 4. 导出到 Excel
output_filename = "茅台日线数据_tushare.xlsx"
df.to_excel(output_filename, index=False) # index=False 表示不将DataFrame的索引写入Excel
print(f"数据已成功导出到 {output_filename}")
使用 Excel 内置功能(最简单,无需编程)
如果你不熟悉编程,可以直接使用 Excel 自带的功能,通过网页数据导入来获取实时或历史数据。
优点:
- 零门槛:无需安装任何额外软件,会基本 Excel 操作即可。
- 动态更新:导入的数据可以设置为“刷新”,获取最新价格。
缺点:
- 数据源有限:依赖 Yahoo Finance 等公共数据源。
- 不够灵活:无法自定义复杂的财务指标或获取特定格式的数据。
操作步骤 (以 Microsoft 365 为例):
-
打开 Excel,点击菜单栏的 “数据” (Data) 选项卡。
-
在 “获取与转换数据” (Get & Transform Data) 组中,点击 “从其他来源” (From Other Sources) -> “从 Web” (From Web)。
-
输入网址:在弹出的窗口中,输入 Yahoo Finance 的股票历史数据页面 URL。
- 格式:
https://finance.yahoo.com/quote/{TICKER}/history?period1={START_TIMESTAMP}&period2={END_TIMESTAMP}&interval=1d&filter=history&frequency=1d&includeAdjustedClose=true - 如何获取时间戳:你可以使用在线工具(如 "Epoch Converter")将日期(如 2025-01-01)转换为 Unix 时间戳(秒)。
- 示例:获取苹果公司 2025 年全年的数据。
TICKER=AAPLSTART_TIMESTAMP(2025-01-01 00:00:00 UTC) =1672531200END_TIMESTAMP(2025-12-31 23:59:59 UTC) =1704067199
- URL:
https://finance.yahoo.com/quote/AAPL/history?period1=1672531200&period2=1704067199&interval=1d&filter=history&frequency=1d&includeAdjustedClose=true
- 格式:
-
确认并解析:点击“确定”,Excel 会提示你如何解析网页数据,选择“表格”,然后点击“确认”。
-
加载数据:在 Power Query 编辑器中,你可以预览和清理数据,确认无误后,点击左上角的 “关闭并加载” (Close & Load)。
数据就会被加载到一个新的 Excel 工作表中,之后,只需在“数据”选项卡中点击 “全部刷新” (Refresh All) 即可更新数据。
使用股票交易软件(最直接,适合个人投资者)
很多主流的股票交易软件或行情软件都支持数据导出功能。
优点:
- 操作直观:点击几下鼠标即可完成。
- 数据可靠:直接来自软件服务商,数据质量有保障。
- 功能集成:可以导出自己软件里的自选股、组合、技术指标等。
常见软件示例:
-
同花顺:
- 在行情列表或自选股列表中,右键点击你想导出的股票。
- 选择 “导出” -> “导出全部数据” 或 “导出历史数据”。
- 在弹出的窗口中设置好时间范围、数据项目(如开盘价、收盘价、成交量等),然后选择保存为 Excel 文件。
-
东方财富:
- 打开个股行情页面。
- 点击页面中的 “导出数据” 按钮。
- 选择时间周期(如日K、周K、月K)和数据范围,确认即可。
-
通达信:
- 在行情列表中,选择你需要的数据列(可以多选)。
- 右键点击,选择 “复制”。
- 打开一个空白的 Excel 表格,右键点击 A1 单元格,选择 “选择性粘贴” -> “值”,或者直接使用 “导出” 功能。
总结与对比
| 方法 | 优点 | 缺点 | 适合人群 |
|---|---|---|---|
| Python | 强大、灵活、免费、自动化 | 需要编程基础,环境配置稍复杂 | 程序员、量化分析师、数据分析师 |
| Excel内置 | 简单、零门槛、可动态刷新 | 数据源有限,功能受限,手动操作 | Excel普通用户、不想编程的投资者 |
| 交易软件 | 操作直观、数据可靠、功能集成 | 依赖特定软件,导出格式可能固定 | 个人投资者、股票爱好者 |
建议:
- 如果你只是偶尔需要导出某几只股票的简单行情,方法三(交易软件) 最快。
- 如果你希望数据能自动更新,并且不想写代码,方法二(Excel内置功能) 是不错的选择。
- 如果你需要处理大量股票、进行复杂分析、或者希望实现数据获取的自动化,方法一(Python) 是不二之选,值得花时间去学习。
