You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术问询:将数组及循环获取的工作表名称列表输出至首个工作表

这两个需求都挺 straightforward 的,我给你准备了Python(用openpyxl库)和Excel VBA两种常用方案,你根据自己的使用场景选就行:

Python + openpyxl 实现方案

先确保你已经安装了openpyxl,没装的话在命令行跑 pip install openpyxl 就行。

1. 将指定数组输出至第一个工作表

from openpyxl import Workbook, load_workbook

# 情况1:新建一个工作簿
wb = Workbook()
ws = wb.active  # 默认获取第一个工作表(名称为Sheet)

# 情况2:打开已有工作簿
# wb = load_workbook("你的文件路径.xlsx")
# ws = wb.worksheets[0]  # 通过索引0获取第一个工作表

# 定义你要输出的指定数组(这里用二维数组举例)
target_array = [
    ["姓名", "年龄", "城市"],
    ["张三", 25, "北京"],
    ["李四", 30, "上海"]
]

# 循环写入数组内容到工作表
for row_idx, row_data in enumerate(target_array, start=1):
    for col_idx, cell_value in enumerate(row_data, start=1):
        ws.cell(row=row_idx, column=col_idx, value=cell_value)

# 保存结果
wb.save("输出结果.xlsx")

小提示:用enumerate(start=1)是为了直接对应Excel从1开始的行/列编号,不用额外做偏移计算,更省心。

2. 将所有工作表名称列表输出至第一个工作表

from openpyxl import load_workbook

# 打开目标工作簿
wb = load_workbook("你的文件路径.xlsx")
ws = wb.worksheets[0]  # 第一个工作表作为输出目标

# 获取所有工作表名称的列表
all_sheet_names = wb.sheetnames

# 把列表写入第一个工作表的A列,这里从第10行开始(避免和之前的数组内容重叠)
for idx, sheet_name in enumerate(all_sheet_names, start=10):
    ws.cell(row=idx, column=1, value=sheet_name)

# 保存修改
wb.save("输出结果.xlsx")

小提示:如果不想从第10行开始,直接把start=10改成你需要的起始行号就行。

Excel VBA 实现方案

打开Excel后按Alt+F11打开VBA编辑器,插入一个新模块,然后粘贴对应代码:

1. 将指定数组输出至第一个工作表

Sub 输出指定数组到首工作表()
    Dim targetArray As Variant
    Dim ws As Worksheet
    Dim i As Integer, j As Integer
    
    ' 定义要输出的二维数组
    targetArray = Array(Array("姓名", "年龄", "城市"), _
                       Array("张三", 25, "北京"), _
                       Array("李四", 30, "上海"))
    
    ' 获取第一个工作表
    Set ws = ThisWorkbook.Worksheets(1)
    
    ' 可选:清空工作表原有内容(不需要的话可以删掉这行)
    ws.Cells.Clear
    
    ' 循环写入数组内容
    For i = LBound(targetArray) To UBound(targetArray)
        For j = LBound(targetArray(i)) To UBound(targetArray(i))
            ws.Cells(i + 1, j + 1).Value = targetArray(i)(j)
        Next j
    Next i
End Sub

小提示:VBA数组默认从0开始索引,所以写入单元格时要加1,对应Excel的1起始行/列。

2. 将所有工作表名称列表输出至第一个工作表

Sub 输出所有工作表名称到首工作表()
    Dim ws As Worksheet
    Dim targetWs As Worksheet
    Dim rowNum As Integer
    
    ' 第一个工作表作为输出目标
    Set targetWs = ThisWorkbook.Worksheets(1)
    
    rowNum = 1 ' 从第1行开始写入,可自行修改
    ' 遍历所有工作表,写入名称
    For Each ws In ThisWorkbook.Worksheets
        targetWs.Cells(rowNum, 1).Value = ws.Name
        rowNum = rowNum + 1
    Next ws
End Sub

小提示:如果想把名称写到其他列,把Cells(rowNum, 1)里的1改成对应列号就行(比如2对应B列)。


内容的提问来源于stack exchange,提问作者user718229

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:16:28