python读取excel中单个sheet表内的多个表
是单个sheet表内的多个表,不是一个excel表中的多个sheet表哈哈,这个问题有点意思,感觉像是要在一个超大的披萨上找出好几块不同口味的披萨片。OK,我们开始吧!
其实呢,一个Excel sheet就像一个二维平面表格,你说的多个表,很可能是指在同一个sheet里面,有几块分开的数据区域。这种情况,你得先定位到这些独立的数据块,然后分别读取它们。
假设你已经知道这些表的位置和规模,那么最简单的办法是用pandas库来处理。我们可以利用pandas读取整个sheet,然后再根据索引去切片。
下面是一个简单的示例:
import pandas as pd
# 读取整个Sheet
excel_file = '你的文件.xlsx'
sheet_name = 'Sheet1'
df = pd.read_excel(excel_file, sheet_name=sheet_name)
# 假设第一个表在A1:C5, 第二个表在A10:C15
table1 = df.iloc# 行 0 到 4 (包头不包尾), 列 0 到 2 (包头不包尾)
table2 = df.iloc# 行 9 到 14, 列 0 到 2
print("第一个表:")
print(table1)
print("\n第二个表:")
print(table2)
这个方法的核心就是`.iloc`,它允许你通过行和列的索引(位置)进行切片操作。当然了,你需要知道这些表格具体在哪些行列。
### 如果位置不确定?
假如你不确定这些子表的位置,那么事情会稍微复杂一点。你可能需要一些规则或者模式来找出这些子表,例如:
- 每个子表之间有一定数量的空行。
- 每个子表都有相似的列名结构。
这里我们可以写个函数来检测这些特征:
def detect_tables(df):
tables = []
start_row = None
for i in range(len(df)):
if not df.iloc.isnull().all():# 当前行不为空
if start_row is None:
start_row = i
else:# 当前行为空
if start_row is not None:
tables.append(df.iloc)
start_row = None
# 添加最后一个表
if start_row is not None:
tables.append(df.iloc)
return tables
# 使用函数检测表
tables = detect_tables(df)
for index, table in enumerate(tables):
print(f"\n第{index + 1}个表:")
print(table)
这个函数巧妙地利用了空行来检测表的边界。当然,如果表格之间没有明确的空行分隔或者有其他更加复杂的情况,还需要进一步定制逻辑。
那就这样啦,看起来简单,其实有各种细节可以挖掘,有兴趣的话可以进一步探讨!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 那如果是要按这样的形式分离表格呢?
大概是这样的,表格之间 是有文字
pallas 发表于 2024-06-22 10:09
那如果是要按这样的形式分离表格呢?
大概是这样的, ...
明白了,兄弟。你遇到的情况就像在一本厚厚的书里寻找独立的章节,而每个章节之间都有一些明显的标题或者隔离文字。
我们可以利用这些“隔离文字”来分割表格。在这种情况下,我们需要先读取整个Sheet,然后通过遍历寻找那些特定的文字行,以此来分割表格。
我们可以这样做:
1. 读取整个Sheet数据。
2. 遍历行,找出那些包含隔离文字的行。
3. 根据这些行的位置,将原始数据切分成多个子表。
假设我们把那些隔离文字叫做“separator”。
下面是具体代码:
import pandas as pd
# 读取整个Sheet
excel_file = '你的文件.xlsx'
sheet_name = 'Sheet1'
df = pd.read_excel(excel_file, sheet_name=sheet_name)
# 假设隔离文字在第1列(index 0)
separator = "隔离文字"
# 功能:查找包含某文字的行索引
separator_rows = == separator]
# 将整个数据集切分成子表
tables = []
start_row = 0
for end_row in separator_rows:
if start_row < end_row:
tables.append(df.iloc)
start_row = end_row + 1
# 添加最后一部分,如果它不为空
if start_row < len(df):
tables.append(df.iloc)
# 显示每个子表
for i, table in enumerate(tables):
print(f"\n第{i + 1}个表:")
print(table)
运行这段代码,你会得到分割后的子表。这些子表将以DataFrame的形式存储在`tables`列表中。
### 贴心小提示:
1. **灵活性**:如果“隔离文字”不仅仅在第一列,你可以调整 `row` 的位置,以适应你的具体情况。
2. **预处理**:如果“隔离文字”有多种形式,例如不同的语义,你可能需要在查找时增加一些字符串匹配的逻辑,比如 `if separator in str(row)`。
3. **后处理**:这个方法读取的是原始数据,没有清除掉“隔离文字”行,如果不需要这些行,可以在分割后再进行处理。
这样,通过灵活运用Python和pandas,我们可以方便地处理多块数据表的复杂情况。不用费劲去手动拆分Excel文件啦,瞬间感觉效率提高了不是一点点!
是不是很简单?快去试试吧!有问题再来找我,没关系,我保证比隔壁老王还耐心 :D
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 只要有点常识的人都不会这样设计表格 FishC 发表于 2024-6-22 10:09
明白了,兄弟。你遇到的情况就像在一本厚厚的书里寻找独立的章节,而每个章节之间都有一些明显的标题或 ...
那如果我想separators中有多个数据,然后根据separators中的数据进行分割呢? pallas 发表于 2024-06-22 10:40
那如果我想separators中有多个数据,然后根据separato ...
好的,这下任务升级啦!我们需要根据多个“隔离文字”进行分割。就像要同时识别出书本中的不同声音标识,找到每个章节的开头。
非常直观,只需在判断行是否是分隔符的时候,改成判断行是否在多个分隔符集合中。这样可以灵活处理多个分隔符。
具体步骤还是类似的:
1. 读取整个Sheet数据。
2. 遍历行,找出那些包含任意一个分隔符的行。
3. 根据这些行的位置切分表格。
下面是具体代码:
import pandas as pd
# 读取整个Sheet
excel_file = '你的文件.xlsx'
sheet_name = 'Sheet1'
df = pd.read_excel(excel_file, sheet_name=sheet_name)
# 假设多个隔离文字在第1列(index 0)
separators = ["隔离文字1", "隔离文字2", "隔离文字3"]
# 找到所有包含任意一个分隔符的行索引
separator_rows =
# 将整个数据集切分成子表
tables = []
start_row = 0
for end_row in separator_rows:
if start_row < end_row:
tables.append(df.iloc)
start_row = end_row + 1
# 添加最后一部分,如果它不为空
if start_row < len(df):
tables.append(df.iloc)
# 显示每个子表
for i, table in enumerate(tables):
print(f"\n第{i + 1}个表:")
print(table)
### 解释一下代码:
1. **读取Excel表格**:使用`pandas`读入整个sheet内容。
2. **寻找分隔符行**:利用`iterrows()`遍历每一行,判断第一列内容是否在`separators`列表中。如果是,就记录下这个行索引。
3. **分割表格**:使用这些行索引,将原始数据划分成若干个子表,并存储在`tables`列表中。
4. **显示结果**:遍历`tables`,逐个打印子表内容。
### 灵活性:
1. **多列分隔符判断**:如果分隔符不在第1列,你可以调整`row`为相应的列索引,比如`row`,`row`等。
2. **忽略空列或其他特定情况**:如果有复杂的排除逻辑,还可以在判断条件中增加进一步的规则。
这样,即便有多个分隔符,我们也能方便地处理,Python自然是帮大忙的了!有了这个灵活的方法,再来多少个分隔符都不怕,手指轻松一点,代码一键搞定!
赶紧试着用吧,觉得好用的话记得给我点赞哦~ 有什么问题随时找我,我保证比你家的WiFi信号还稳定 :D
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 运行后他显示:
Traceback (most recent call last):
File "D:\PyCharm\excel_merge\excel_merge\.venv\Lib\site-packages\extract.py", line 33, in <module>
separator_rows =
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\PyCharm\excel_merge\excel_merge\.venv\Lib\site-packages\extract.py", line 33, in <listcomp>
separator_rows =
^^^^^^^^^^^^^^^^^
File "D:\anaconda3\Lib\site-packages\pandas\core\generic.py", line 1519, in __nonzero__
raise ValueError(
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). pallas 发表于 2024-06-22 10:59
运行后他显示:
Traceback (most recent call last): ...
好的,遇到这个错误的原因是`pandas`在进行布尔判断时需要明确地指定条件。我们在生成分隔符行索引时,需要对每一行的特定列进行判断,不能直接使用布尔值进行列表推导。
让我们针对这个问题进行修正,并以明确的方法寻找包含任何一个分隔符的行。
下面是改进后的代码:
import pandas as pd
# 读取整个Sheet
excel_file = '你的文件.xlsx'
sheet_name = 'Sheet1'
df = pd.read_excel(excel_file, sheet_name=sheet_name)
# 假设多个隔离文字在第1列(index 0)
separators = ["separator1", "separator2", "separator3"]
# 找到所有包含任意一个分隔符的行索引
separator_rows = in separators]
# 将整个数据集切分成子表
tables = []
start_row = 0
for end_row in separator_rows:
if start_row < end_row:
tables.append(df.iloc)
start_row = end_row + 1
# 添加最后一部分,如果它不为空
if start_row < len(df):
tables.append(df.iloc)
# 显示每个子表
for i, table in enumerate(tables):
print(f"\n第{i + 1}个表:")
print(table)
### 解释一下改进的代码:
1. **读取Excel表格**:使用`pandas`读入整个sheet内容。
2. **寻找分隔符行**:利用`iterrows()`遍历每一行,判断第一列内容是否在`separators`列表中。如果是,就记录下这个行索引。
3. **分割表格**:使用这些行索引,将原始数据划分成若干个子表,并存储在`tables`列表中。
4. **显示结果**:遍历`tables`,逐个打印子表内容。
通过这种方法,你可以灵活地处理任意数量的分隔符,不再会遇到布尔判断错误的问题。
### 再次说明:
- **多列分隔符判断**:如果分隔符不在第1列,你可以调整`row`为相应的列索引,比如`row`,`row`等。
- **忽略空列或其他特定情况**:如果有复杂的排除逻辑,还可以在判断条件中增加进一步的规则。
希望这次的改进能顺利解决你的问题!赶紧试试,有问题随时来找我,我保证比哈里波特的魔法还管用 :D
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 pallas 发表于 2024-6-22 10:59
运行后他显示:
Traceback (most recent call last):
File "D:\PyCharm\excel_merge\excel_merge\.venv ...
解决了
pallas 发表于 2024-06-22 11:01
解决了
太好了!听到你解决了问题我也替你高兴!看来我们的代码魔法确实生效了。如果有其他任何问题或是新的挑战,随时欢迎来找我,就像哈利波特遇到困难时会去找邓布利多一样可靠。
另外,如果你对数据处理还有其他需求,比如数据清洗、可视化或者其他分析任务,也可以尽管提问。Python可是我们用起来得心应手的工具箱哦!
祝你编码愉快,工作顺利!如果再需要帮忙,记得呼叫我哦 :D
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-6-22 11:00
好的,遇到这个错误的原因是`pandas`在进行布尔判断时需要明确地指定条件。我们在生成分隔符行索引时, ...
那我如果有多个excel表,但其里面的格式是相同的(同上),不同的只有表格中的数据,我现在要把他们统计在一个excel表中呢? pallas 发表于 2024-06-22 11:09
那我如果有多个excel表,但其里面的格式是相同的(同 ...
哇哦!又来了一个有趣的挑战,这次是要将多份相同格式的Excel文件合并成一个,简直像是在拼装一个超级豪华拼图,不同的只是每块拼图的内容~ 没问题,我们可以轻松搞定这件事!
### 思路
1. **读取每个Excel文件**:我们可以使用`glob`库来找到所有目标文件。
2. **分割每个文件中的子表**:使用和之前类似的方法找出分隔符并进行分割。
3. **合并所有子表**:将所有子表汇总到一个DataFrame中。
4. **写入新的Excel文件**:将合并后的数据写入一个新的Excel文件。
### 具体代码
首先,确保你已经安装了`pandas`和`openpyxl`(用于处理Excel文件)的库。如果没有,可以通过以下命令安装:
pip install pandas openpyxl
然后,下面是具体的实现代码:
import pandas as pd
import glob
# 文件路径模式(假设所有Excel文件都放在某个目录下)
excel_files_pattern = 'path_to_your_excel_files/*.xlsx'
separators =# 你的分隔符列表
def get_tables_from_excel(file):
df = pd.read_excel(file, sheet_name='Sheet1')
separator_rows =
tables =
start_row = 0
for end_row in separator_rows:
if start_row < end_row:
tables.append(df.iloc)
start_row = end_row + 1
if start_row < len(df):
tables.append(df.iloc)
return tables
# 初始化一个空的DataFrame来存储所有的数据
all_tables = pd.DataFrame()
# 找到所有的Excel文件并处理它们
for file in glob.glob(excel_files_pattern):
tables = get_tables_from_excel(file)
for table in tables:
all_tables = pd.concat(, ignore_index=True)
# 写入到一个新的Excel文件
output_file = 'path_to_your_output_file/merged.xlsx'
all_tables.to_excel(output_file, index=False)
print("所有表格已成功合并到一个Excel文件中!")
### 解释一下代码:
1. **读取Excel文件路径**:使用`glob.glob()`找到所有匹配路径模式的Excel文件。
2. **定义分割子表的函数**:`get_tables_from_excel()`函数根据之前的逻辑,从每个Excel文件中分割出子表。
3. **初始化空的DataFrame**:`all_tables`用来存储所有合并后的数据。
4. **遍历所有文件并处理**:对于每个文件,调用分割函数,然后将每个子表合并到`all_tables`中。
5. **导出合并后的数据**:使用`to_excel()`将最终结果输出到一个新的Excel文件中。
这样,你就能轻松地将多个Excel文件中的子表合并到一个新的文件中。省时省力,效率飙升!
赶紧试试吧,如果再有问题或者需要改进的地方,随时来找我吧,我的魔法永远为你而准备!:D
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-6-22 11:09
哇哦!又来了一个有趣的挑战,这次是要将多份相同格式的Excel文件合并成一个,简直像是在拼装一个超级 ...
运行报错:
Traceback (most recent call last):
File "D:\PyCharm\excel_merge\excel_merge\.venv\Lib\site-packages\extract.py", line 67, in <module>
tables = get_tables_from_excel(file)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\PyCharm\excel_merge\excel_merge\.venv\Lib\site-packages\extract.py", line 47, in get_tables_from_excel
separator_rows =
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\PyCharm\excel_merge\excel_merge\.venv\Lib\site-packages\extract.py", line 47, in <listcomp>
separator_rows =
^^^^^^^^^^^^^^^^^
File "D:\anaconda3\Lib\site-packages\pandas\core\generic.py", line 1519, in __nonzero__
raise ValueError(
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
pallas 发表于 2024-06-22 11:16
运行报错:
Traceback (most recent call last):
...
好的,咱们继续探讨这个有趣而略带“调皮”的错误。这个错误提示依然与布尔判断有关,`pandas`在判断条件时,需要我们明确指定该怎么处理布尔值。让我们仔细看看代码哪里出了问题。
### 重新调整代码
首先,我们需要确保在找到分隔行时,更清晰地做出布尔判断。然后将多个Excel文件中的数据合并到一个最终的DataFrame中。
你之前提到过分隔符,让我来做个补充然后改进一下:
import pandas as pd
# 定义函数从单个Excel文件(单个sheet表内的多个表)读取数据
def get_tables_from_excel(filename, sheet_name, separators):
# 读取excel,返回的是 DataFrame
df = pd.read_excel(filename, sheet_name=sheet_name)
# 获取属于分隔行的索引
separator_rows = df.loc.isin(separators)].index.tolist()
separator_rows.append(len(df)) # 加上最后一行索引,方便切片
tables = []
previous_sep = 0
for sep in separator_rows:
if previous_sep != sep:
table = df.iloc.reset_index(drop=True)
tables.append(table)
previous_sep = sep + 1
return tables
# 多个Excel文件路径
files = ["file1.xlsx", "file2.xlsx", "file3.xlsx"]
# 假设所有Excel文件中单sheet的名称相同
sheet_name = "Sheet1"
# 定义你的分隔符
separators = ['separator1', 'separator2']
# 用于存储所有表格
all_tables = []
# 逐个读取 Excel 文件并获取表格
for file in files:
tables = get_tables_from_excel(file, sheet_name, separators)
all_tables.extend(tables)
# 将所有表格写入一个新的Excel文件,每个表格作为一个新的Sheet
with pd.ExcelWriter('merged_output.xlsx') as writer:
for idx, table in enumerate(all_tables):
table.to_excel(writer, sheet_name=f'Table_{idx+1}', index=False)
print("合并完成!")
### 解释
1. 我们修正了`separator_rows`获取方法,通过`.loc.isin(separators)]`来准确找到那些分隔行。
2. `separator_rows`列表末尾添加了一个元素,即`len(df)`,这样方便我们进行切片操作。
3. 遍历`separator_rows`时,确保每一块表格在分隔符之间被提取,并重置索引。
4. 最后,我们把所有提取到的表格保存在`all_tables`列表中,并导出到一个Excel文件中,每个表格作为一个新的sheet。
试试这个代码,看是否解决了你的问题。如果还有问题,请随时告诉我,我随时待命!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-6-22 11:17
好的,咱们继续探讨这个有趣而略带“调皮”的错误。这个错误提示依然与布尔判断有关,`pandas`在判断条 ...
Traceback (most recent call last):
File "D:\PyCharm\excel_merge\excel_merge\.venv\Lib\site-packages\extract.py", line 75, in <module>
tables = get_tables_from_excel(file, sheet_name, separators)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\PyCharm\excel_merge\excel_merge\.venv\Lib\site-packages\extract.py", line 28, in get_tables_from_excel
df = pd.read_excel(filename, sheet_name=sheet_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\anaconda3\Lib\site-packages\pandas\io\excel\_base.py", line 504, in read_excel
io = ExcelFile(
^^^^^^^^^^
File "D:\anaconda3\Lib\site-packages\pandas\io\excel\_base.py", line 1563, in __init__
ext = inspect_excel_format(
^^^^^^^^^^^^^^^^^^^^^
File "D:\anaconda3\Lib\site-packages\pandas\io\excel\_base.py", line 1419, in inspect_excel_format
with get_handle(
^^^^^^^^^^^
File "D:\anaconda3\Lib\site-packages\pandas\io\common.py", line 872, in get_handle
handle = open(handle, ioargs.mode)
^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: Invalid argument: 'D:\x824年6月14日\x01.周-南(6月14日).xlsx' pallas 发表于 2024-06-22 11:30
Traceback (most recent call last):
File "D:\PyC ...
明白了,这个错误看起来与文件路径有关。您的路径中包含了一些特殊字符,可能引起了问题。我们需要确保文件路径是正确的,并以正确的方式读取文件。
### 解决文件路径问题
这里有几点可以考虑:
1. 检查并修改文件路径,确保路径有效且不存在特殊字符。
2. 使用原始字符串(`r"..."`)来处理路径字符串,避免转义字符的问题。
### 调整后的代码
为了确保路径处理正确,建议将路径在使用之前进行检查和处理。下面是调整后的代码示例:
import pandas as pd
import glob
def get_tables_from_excel(filename, sheet_name, separators):
# 使用原始字符串防止特殊字符带来的问题
df = pd.read_excel(rf"{filename}", sheet_name=sheet_name)
separator_rows = df.apply(lambda row: any(separator in str(row) for separator in separators), axis=1)
start_idx = df.index.tolist()
tables = []
for i in range(len(start_idx)):
start = start_idx + 1
end = start_idx if i + 1 < len(start_idx) else len(df)
table = df.iloc
tables.append(table)
return tables
def merge_excels(file_pattern, sheet_name, separators):
all_tables = []
files = glob.glob(file_pattern)
for file in files:
tables = get_tables_from_excel(file, sheet_name, separators)
all_tables.extend(tables)
merged_df = pd.concat(all_tables, ignore_index=True)
return merged_df
# 你的文件模式,例如:"*.xlsx"
file_pattern = r"D:\your_folder\*.xlsx"
sheet_name = "Sheet1"# 你的具体Sheet名称
separators = ["===", "---", "###"]# 你的分隔符列表
merged_df = merge_excels(file_pattern, sheet_name, separators)
# 保存合并后的结果到一个新的Excel文件
merged_df.to_excel(r"D:\your_folder\merged_result.xlsx", index=False)
### 注意事项
1. 确保 `file_pattern` 是正确的文件搜索模式(例如:`*.xlsx`)。
2. `sheet_name` 应该用于所有文件中的相同 Sheet。
3. `separators` 可以根据实际情况调整为合适的分隔符。
希望这样能够顺利运行,如果还有其他问题或报错,请随时告诉我,咱们继续调试~!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 这个是对文件的命名有要求吗?
我先前也是这样命名的 pallas 发表于 2024-06-22 11:30
这个是对文件的命名有要求吗?
我先前也是这样命名的
好的,那这个问题不太可能仅仅是命名问题,我们再来仔细看看路径问题。路径中使用特殊字符和文件名可能会引起读取问题,我们可以进行以下几个检查和修正:
1. **确保路径有效**:确认路径中没有错字或无效字符。
2. **使用原始字符串处理路径**:加上 `r` 前缀以避免转义字符带来的问题。
3. **确认文件存在**:确保文件路径正确且文件存在。
我们重新调整一下代码,确保路径是原始字符串类型,并进一步优化读取和合并的代码。
### 优化后的代码
import pandas as pd
import os
# 定义函数来从单个 Excel 文件中提取所有表格
def get_tables_from_excel(filename, sheet_name, separators):
df = pd.read_excel(filename, sheet_name=sheet_name)
separator_rows = df.apply(lambda row: any(item in str(row) for item in separators), axis=1)
# 找到分隔行的索引
separator_indices =
separator_indices.append(len(df))# 把最后一索引也加上
tables = []
start_idx = 0
for end_idx in separator_indices:
if start_idx < end_idx:
tables.append(df.iloc)
start_idx = end_idx + 1
return tables
# 定义函数来合并所有表格
def merge_tables(file_list, sheet_name, separators):
all_tables = []
for file in file_list:
file = r'{}'.format(file)# 使用原始字符串避免转义问题
if os.path.exists(file):# 确认文件存在
tables = get_tables_from_excel(file, sheet_name, separators)
all_tables.extend(tables)
else:
print(f"文件未找到: {file}")
# 合并所有表格
combined_df = pd.concat(all_tables, ignore_index=True)
return combined_df
# 示例文件列表和分隔符
excel_files = [
r'D:\路径1\文件1.xlsx',
r'D:\路径2\文件2.xlsx'
]
sheet_name = 'Sheet1'
separators = ['分隔符1', '分隔符2', '等等']
# 合并所有表格到一个 DataFrame
combined_df = merge_tables(excel_files, sheet_name, separators)
# 将结果保存到新的 Excel 文件
combined_df.to_excel(r'D:\输出路径\合并结果.xlsx', index=False)
在这个版本中:
1. 我们明确使用原始字符串(`r'...'`)格式处理文件路径,避免任何路径中的特殊字符导致的问题。
2. 在读取文件之前添加了文件存在性检查,确保文件确实存在。
你可以尝试运行这个版本,看看是否解决了路径相关的问题。如果还有其他问题或新的挑战,随时欢迎继续探讨!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-6-22 11:31
好的,那这个问题不太可能仅仅是命名问题,我们再来仔细看看路径问题。路径中使用特殊字符和文件名可能 ...
那现在如果合并的时候保留表格中的格式呢?