一、手动获取工作表名称
使用VBA宏 按 `Alt + F11` 打开VBA编辑器,插入新模块并输入以下代码:
```vba
Sub ListAllSheetNames()
Dim ws As Worksheet
Dim newSheet As Worksheet
Dim i As Integer
' 创建新工作表用于存放名称
On Error Resume Next
Set newSheet = ThisWorkbook.Worksheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
newSheet.Name = "SheetNames"
' 遍历并写入工作表名称
For Each ws In ThisWorkbook.Worksheets
newSheet.Cells(i + 1, 1).Value = ws.Name
i = i + 1
Next ws
End Sub
```
运行后,所有工作表名称将列在新工作表中。
使用Excel公式
在任意单元格输入公式 `=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)`,按 `Ctrl+Shift+Enter` 定义为动态数组,可快速填充所有工作表名称。
二、自动化获取工作表名称
Python脚本(openpyxl库)
```python
import openpyxl
加载Excel文件
workbook = openpyxl.load_workbook('yourfile.xlsx')
sheet_names = workbook.sheetnames
打印或修改工作表名称
for i, sheet_name in enumerate(sheet_names):
workbook[sheet_name].title = f"数据表{i+1}"
workbook.save('modified_file.xlsx')
```
适合批量重命名或处理大量文件。
Java程序(Apache POI库)
```java
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.Sheet;
import java.io.File;
public class ListSheetNames {
public static void main(String[] args) throws Exception {
Workbook workbook = WorkbookFactory.create(new File("example.xlsx"));
int totalSheets = workbook.getNumberOfSheets();
for (int i = 0; i < totalSheets; i++) {
String sheetName = workbook.getSheetName(i);
System.out.println(sheetName);
}
workbook.close();
}
}
```
适合集成到Java项目中。
三、注意事项
公式方法限制: Excel公式方法仅适用于单个文件,且需手动复制填充,效率较低。 自动化工具
文件路径:确保脚本中文件路径正确,且文件未被其他程序占用。
根据需求选择合适方法,手动操作适合小规模文件,自动化脚本适合大规模数据处理。