Mindket

把 PDF 和图片里的付款流水导出成 CSV

新上架第 1 版 · 更新于

概览

一个 n8n 工作流,监视一个 Google Drive 文件夹里付款流水的 PDF 和图片。AI 模型读取每一份,给每一行加上类别,再把 CSV 文件存进另一个 Drive 文件夹。

把 PDF 和图片里的付款流水导出成 CSV 是一款 n8n 工作流,属于财务类,由 Mindket 上架。可免费获取。当前为第 1 版,最近更新于 。在本页下载,或复制它的 JSON,再导入 n8n 画布。在 n8n 里启用之前,它不会运行。

速览

用在
  • n8n Cloud 或你自己的服务器:里面每个节点都是 n8n 自带的
  • 你自己的 Google Drive:一个文件夹放要读取的文件,一个放 CSV 文件
  • 换一个模型:改 OpenRouter 请求里的模型名,或者把 Gemini 节点换成另一个能读图片的聊天模型
  • 换一个存放的地方:把两个上传节点换成 Google Sheets 或文件节点

平台

连接 3 个应用

运行方式

触发

一个 Drive 文件夹里的新文件

每分钟检查一次输入文件夹,每个新文件都会触发一次运行,读取:

  • Google Drive 文件夹里一份付款流水的 PDF 或图片

动作

  1. 一个路由节点把 PDF 送上一条路径,把图片送上另一条,其他文件忽略
  2. 对 PDF,先读出文件里的文字,再发给 OpenRouter
  3. 模型把每笔交易列成 CSV,并加上类别列
  4. 对图片,把图片连同类似的指令发给 Google 的 Gemini
  5. 把 CSV 文字存成一个文件
  6. 文件以当天的日期为名上传到输出文件夹

结果

第二个 Google Drive 文件夹里一份交易的 CSV 文件,每一行都带着类别

集成

开始之前要准备好这些。

Google Drive

来源和存放

有新文件时触发,下载它,并把 CSV 文件存进第二个文件夹。

需要一个 Google 服务账号,以及与它共享的两个文件夹

OpenRouter

PDF 用的模型

读取 PDF 的文字,并以 CSV 返回交易,带类别列。

需要带一些额度的 OpenRouter API 密钥

Google Gemini

图片用的模型

读取图片里的交易,并以 CSV 返回,带类别列。

需要Google Gemini API 密钥

工作流检查

由 Mindket 于 2026年11月13日检查

步骤
11 个步骤,由 Google Drive 事件启动
AI
1 个步骤调用 AI 模型:Gemini extract text from image
登录
需要登录:Google service account、openrouter.ai、Google Gemini
API 密钥
文件里没有留下 API 密钥
步骤类型
Mindket 的检查器能读懂它全部 7 种步骤类型

以上内容读自工作流文件,并非实际运行的结果。

关于

它是什么

这个 n8n 工作流把流水变成 CSV 文件。它监视一个 Google Drive 文件夹,有付款流水的 PDF 或图片放进来时,一个 AI 模型会读取它。模型列出每一笔交易,并加上类别列。PDF 通过 OpenRouter 处理,图片通过 Google 的 Gemini 处理。工作流把 CSV 文字存成一个文件,放进第二个 Drive 文件夹,所以一堆流水就变成了能在电子表格里打开的表格。十二个节点完成整个流程。

适合谁

把付款记录存成 PDF 或截图、又想要成行数据的人。它适合小企业、自由职业者,或者手工记账的家庭。如果你不能把流水发给外部的 AI 服务,就别选它。

谁在用,怎么用
行业谁在用怎么用例子
财务记账人员在把客户流水录进账本之前先变成行记账人员放进一份银行流水 PDF,打开 CSV 核对每一行。
企业小企业主把本月的刷卡付款分好类企业主拍下一张刷卡小票,在表里找到它的一行和类别。
个人理财家庭把预算从 PDF 里搬到一张表里一个家庭每月放进一份流水,再把这些文件在电子表格里合并。
自由职业自由职业者为报税收集开支自由职业者把一年的收据存成图片,每张图片得到一个文件。

You need some n8n for this one: 要准备一个 Google 服务账号、两个 Drive 文件夹、一个 OpenRouter 密钥和一个 Gemini 密钥。文件没有给出设置时长。

用在哪里

n8n Cloud 或自托管的 n8n 都能运行它,你需要自己的 Google Drive 文件夹,以及 OpenRouter 和 Google AI 的账户。

  • n8n Cloud 或你自己的服务器:里面每个节点都是 n8n 自带的
  • 你自己的 Google Drive:一个文件夹放要读取的文件,一个放 CSV 文件
  • 换一个模型:改 OpenRouter 请求里的模型名,或者把 Gemini 节点换成另一个能读图片的聊天模型
  • 换一个存放的地方:把两个上传节点换成 Google Sheets 或文件节点

设置

点“下载”会把一个压缩包存到你的下载文件夹,里面有 workflow.json 和 Mindket 的设置说明。四个凭据加三个文件夹值就够完成所有步骤。

先准备好这些
需要说明
n8nn8n Cloud 的账户,或你自己的服务器
Google 服务账号打开了 Google Drive API,并有它的密钥
Google Drive一个输入文件夹和一个输出文件夹,都与这个账号共享
OpenRouter带一些额度的 API 密钥,用于 PDF
Google Gemini一个 API 密钥,用于图片
  1. 在 n8n 里新建一个工作流,打开它的菜单,选 Import from File,选中 workflow.json。
  2. 添加一个 Google Service Account 凭据,在 Get PDF or Images、Download PDF、Download Image、Upload to Google Drive 和 Upload to Google Drive1 里选中它。
  3. 在 Get PDF or Images 里,把 <YOUR_INPUT_FOLDER_ID> 换成要监视的文件夹的 ID。在两个上传节点里,把 <YOUR_OUTPUT_FOLDER_ID> 换成放 CSV 的文件夹的 ID。
  4. 添加一个 Header Auth 凭据,名称填 Authorization,值填 Bearer <YOUR_OPENROUTER_API_KEY>。在 Send data to A.I. 里选中它。
  5. 添加一个 Google Gemini(PaLM) API 凭据,填你的密钥,在 Google Gemini Chat Model 里选中它。
  6. 点 Test workflow,把一份有几笔交易的 PDF 放进输入文件夹,等到下一次轮询,再打开放 CSV 的文件夹。然后保存,再点画布顶部的 Publish(或按 Shift+P)。

如何使用

发布工作流后就不用管它了。把付款流水的 PDF 或图片放进输入文件夹。大约一分钟内,输出文件夹里就会出现一个以当天日期命名的 CSV 文件。在电子表格里打开它,对照原件核对数字,改掉模型写错的行。

想要不同的效果,改这里
要改的在哪里改
文件夹Get PDF or Images 和两个上传节点
PDF 的指令Send data to A.I. 里的消息
图片的指令Gemini extract text from image 里的两条消息
模型Send data to A.I. 里的 model 和 Google Gemini Chat Model
文件名两个上传节点里的 Name
检查的频率Get PDF or Images 里的轮询时间

示例

一位记账人员把一份三页的银行流水 PDF 和一张刷卡小票的照片放进了输入文件夹。

输出文件夹里出现两个文件。第一个有一行表头和每笔交易一行,每行带着类别,比如“买菜”或“交通”。第二个只有小票上的那一笔交易。记账人员打开两个文件,对照原件检查。

新手与专家

新手:n8n 把工作流画成用线连起来的方框,每个方框是一个节点,只做一件事。这里一个路由方框把 PDF 送往一边,把图片送往另一边。一条路径读出 PDF 的文字,再让模型写出 CSV。另一条路径把图片给模型看。点一次 Test workflow,放进一个文件,再打开每个方框的输出看看它是怎么走的。

专家:PDF 这条路径是对 OpenRouter 的一个普通 HTTP 请求,图片这条路径是一个带 Gemini 聊天模型和二进制图片消息的 Basic LLM Chain。

值得细看的地方
节点做什么要知道的
Get PDF or ImagesGoogle Drive Trigger,每分钟轮询一个文件夹里的新文件用的是服务账号,所以文件夹必须与它共享
Route based on PDF or Image按文件的 mime 类型做 Switchapplication/pdf 是完全匹配,image/ 是包含匹配。其他类型到这里就停了
Send data to A.I.向 OpenRouter 的聊天补全路径发 HTTP 请求请求体用 JSON.stringify 构建,回答从 choices[0].message.content 读取
Gemini extract text from image带 data 字段里图片的 Basic LLM Chain链把回答放在一个叫 text 的字段里
Save CSV text as fileConvert to File,文本操作把回答作为纯文字写进 transactions.csv
Upload to Google Drive把文件上传到输出文件夹名字是当天的日期加 .csv,所以同一天的两个文件同名

注意事项

这个工作流把流水发给 AI 服务,并相信模型写出来的东西,所以用之前请先读一遍每个文件。

  • 未运行:Mindket 没有调用过 Google Drive、OpenRouter 或 Gemini,只是在自己的机器上运行了改过的请求表达式,并读了 n8n 的源码来了解文件节点
  • OpenRouter 模型:文件里写的是 meta-llama/llama-3.1-70b-instruct:free,OpenRouter 的模型列表已不再显示它。现在改成 meta-llama/llama-3.1-70b-instruct,这是个收费模型,所以每份 PDF 会花一点钱
  • Gemini 模型:文件里写的是 models/gemini-1.5-pro-latest,Google 已不再列出它。现在改成 models/gemini-3.6-flash
  • 转换:原来用模型的整个回答对象做 CSV,这让交易都挤在一个单元格里。现在把回答的文字(本来就是 CSV)写进一个文件
  • 准确性:CSV 是模型写的,所以它可能漏掉一行、读错一个数字,或者在表头前加一句话
  • 扫描件:Extract data from PDF 读的是 PDF 里的文字,所以没有文字的扫描件什么也读不出来。请把那些页面存成图片
  • 长度:全部文字放在一个请求里,在 OpenRouter 的列表里这个模型的上下文是 131072 个 token,所以更长的流水可能失败
  • 文件名:文件以纯文字的形式、用 .csv 的名字存进 Drive
  • 触发:只有工作流启动之后在文件夹里新建的文件才会被取到
  • 你的数据:PDF 的文字会发给 OpenRouter 和它背后的服务商,图片会发给 Google。流水里有账号,所以请先看两家的条款
  • 凭据:JSON 里没有任何凭据

README 和文件

README

把 PDF 和图片里的付款流水导出成 CSV

一个 n8n 工作流,监视一个 Google Drive 文件夹。有 PDF 或图片放进来时,一个 AI 模型会读出里面的付款流水,并给每一笔加上类别。结果会作为 CSV 文件存进另一个 Drive 文件夹。PDF 通过 OpenRouter 处理,图片通过 Google 的 Gemini 处理。

包里有什么

  • workflow.json:n8n 导出的工作流,16 个节点,其中 12 个会运行,四个是便签。里面没有任何凭据。
  • README.md:这份设置说明,压缩包里的是英文版。

我们相对原来的副本改了什么

  • Send data to A.I. 原来用 meta-llama/llama-3.1-70b-instruct:free。OpenRouter 的公开模型列表(2026 年 11 月 12 日查阅)已经不再显示这个名字。现在节点用 meta-llama/llama-3.1-70b-instruct,列表里它是按 token 计价的。
  • Google Gemini Chat Model 原来用 models/gemini-1.5-pro-latest,Google 的模型页和弃用页都不再列出它。现在它用 models/gemini-3.6-flash。
  • PDF 文字原来通过 encodeURIComponent 放进请求,这会把它变成百分号编码。现在改用 JSON.stringify,模型读到的是普通文字,流水里的引号也不会弄坏请求。
  • 两个 Convert to CSV 节点原来用模型的整个回答对象做 CSV,所以交易全挤在一个单元格里。现在它们叫 Save CSV text as file 和 Save CSV text as file from image,把回答的文字(本来就是 CSV)写进一个文件。
  • 上传的名字原来是 {{$today}},现在是当天的日期加 .csv。
  • 作者的两个文件夹 ID 现在是 <YOUR_INPUT_FOLDER_ID> 和 <YOUR_OUTPUT_FOLDER_ID>。
  • Vertex A.I. extract text 现在叫 Gemini extract text from image。它用的节点是用 Google Gemini(PaLM) API 密钥调用 Google 的 Gemini API,不是 Vertex AI,而原来的便签说的不是这样。
  • 便签里去掉了指向作者博客的链接,示例的服务账号邮箱现在是 <YOUR_SERVICE_ACCOUNT_EMAIL>。
  • 所有凭据关联都已删掉,请选你自己的。
  • 别的都没改。提示词、路由和轮询都和原来一样。

开始之前

  • 一个 n8n,n8n Cloud 或你自己的服务器都行。
  • 一个打开了 Google Drive API 的 Google 服务账号,以及它的密钥。
  • 两个 Google Drive 文件夹,一个放 PDF 和图片,一个放 CSV 文件,都要与服务账号共享。
  • 一个 OpenRouter 账户,要有 API 密钥和一些额度,用于 PDF。
  • 一个 Google Gemini API 密钥,用于图片。

设置

  1. 在 n8n 里新建一个工作流,打开它的菜单,选 Import from File,选中 workflow.json。
  2. 添加一个 Google Service Account 凭据,在 Get PDF or Images、Download PDF、Download Image、Upload to Google Drive 和 Upload to Google Drive1 里选中它。
  3. 在 Get PDF or Images 里,把 <YOUR_INPUT_FOLDER_ID> 换成要监视的文件夹的 ID,它是文件夹在 Drive 里地址的最后一段。在两个上传节点里,把 <YOUR_OUTPUT_FOLDER_ID> 换成放 CSV 的文件夹的 ID。
  4. 添加一个 Header Auth 凭据,名称填 Authorization,值填 Bearer <YOUR_OPENROUTER_API_KEY>。在 Send data to A.I. 里选中它。
  5. 添加一个 Google Gemini(PaLM) API 凭据,填你的密钥,在 Google Gemini Chat Model 里选中它。
  6. 点 Test workflow,然后把一份有几笔交易的 PDF 放进输入文件夹。等到下一次轮询,再打开放 CSV 的文件夹。然后保存,再点画布顶部的 Publish(或按 Shift+P)。

一次运行的过程

  1. Get PDF or Images 每分钟检查一次输入文件夹里有没有新文件。
  2. Route based on PDF or Image 把 PDF 送上它的第一个输出,把文件类型里含有 image/ 的送上第二个输出。其他文件到这里就停了。
  3. 对 PDF,Download PDF 取回文件,Extract data from PDF 读出它的文字。
  4. Send data to A.I. 把文字发给 OpenRouter,要求把所有交易列成 CSV,并加一个叫 category 的列。
  5. Save CSV text as file 把回答写进一个叫 transactions.csv 的文件,Upload to Google Drive 把它以当天的日期为名存进输出文件夹。
  6. 对图片,Download Image 取回文件,Gemini extract text from image 把它连同类似的指令发给 Google Gemini Chat Model。
  7. Save CSV text as file from image 和 Upload to Google Drive1 对图片的回答做同样的事。

改变样子

  • 文件夹:Get PDF or Images 和两个上传节点。
  • 指令:PDF 用 Send data to A.I. 里的消息,图片用 Gemini extract text from image 里的两条消息。
  • 模型:Send data to A.I. 请求里的 model,以及 Google Gemini Chat Model。
  • 保存的文件名:两个上传节点里的 Name。
  • 检查的频率:Get PDF or Images 里的轮询时间。

值得知道的

  • 未运行:Mindket 没有调用过 Google Drive、OpenRouter 或 Gemini。它在自己的机器上运行了改过的请求表达式,并读了 n8n 的源码来了解文件节点。
  • CSV 是模型写的,所以它可能漏掉一行、读错一个数字,或者在表头前加一句话。请打开每个文件,核对数字。
  • Extract data from PDF 读的是 PDF 里的文字。没有文字的扫描件什么也读不出来,请把那些页面存成图片。
  • 全部文字放在一个请求里。在 OpenRouter 的列表里,这个模型的上下文是 131072 个 token,更长的流水可能失败。
  • 现在这个模型是收费的,所以每份 PDF 会在 OpenRouter 上花一点钱。
  • 文件以纯文字的形式、用 .csv 的名字存进 Drive。同一天做出的两个文件同名。
  • 只有工作流启动之后在文件夹里新建的文件才会被取到。
  • 你的数据:PDF 的文字会发给 OpenRouter 和它背后的服务商,图片会发给 Google。流水里有账号,所以请先看两家的条款。CSV 文件留在你的 Drive 里。
  • 凭据:JSON 里没有任何凭据。
文件
NOTICE.md  686 B
README.md  6 KB
workflow.json  12 KB

3 个文件,共 18 KB,以 zip 压缩包下载。

更新内容

  • 第 1 版 · 2026-11-12

评价

还没有评分

写评价

还没有评价。

Mindket 的更多商品

查看 Mindket 的全部商品

DeepSeek-R1-GGUF

unsloth · 工具包

671B 参数 DeepSeek-R1 推理模型的 GGUF 版本,带 1.58-bit 和 2-bit 动态量化,可在内存足够的本机上用 llama.cpp 运行。

新上架

Axion-1.0-35B-GGUF

prithivMLmods · 工具包

提供 Axion-1.0-35B 的 GGUF 文件,这是一个有约 30 亿激活参数的 35B 混合专家模型,面向科学推理、信息查找和工具使用。适合配合 llama.cpp 在本地使用。

新上架

HEART

Phips · 工具包

用一个超分辨率网络放大低分辨率图像,可以在一块消费级 GPU 上训练,并导出为 ONNX。适合训练或运行图像放大模型的人。

新上架

财务类的相似商品

查看财务类的全部商品

Kronos-mini

NeoQuasar · 工具包

用一个 4.1M 参数、基于 45 多家交易所数据训练的基础模型来预测金融 K 线序列。适合想用小模型做价格预测实验的量化研究人员和开发者。

新上架

一个归档发票的 n8n 工作流。它盯着一个 Google Drive 文件夹,把每个新文件交给 LlamaParse 读取,再由 OpenAI 模型取出明细行,Airtable 里得到一条发票记录和每个明细行各一条记录。

新上架免费