|
|
@@ -312,8 +312,11 @@ def upload_to_feishu(csv_file, sheet_token, sheet_id=None, sort_spec="dt:desc",
|
|
|
|
|
|
# 读取飞书表头(获取所有列)
|
|
|
feishu_header = client.read_range_values(access_token, sheet_token, f"{sheet_id}!A1:{header_end_col}1")
|
|
|
+ feishu_cols = []
|
|
|
if feishu_header and feishu_header[0]:
|
|
|
- feishu_cols = feishu_header[0]
|
|
|
+ feishu_cols = [c for c in feishu_header[0] if c] # 过滤 None 和空字符串
|
|
|
+
|
|
|
+ if feishu_cols:
|
|
|
print(f"飞书表头: {feishu_cols}")
|
|
|
print(f"CSV表头: {header}")
|
|
|
|
|
|
@@ -344,6 +347,13 @@ def upload_to_feishu(csv_file, sheet_token, sheet_id=None, sort_spec="dt:desc",
|
|
|
converted_rows = new_converted_rows
|
|
|
header = feishu_cols
|
|
|
print(f"已按飞书表头顺序重排数据")
|
|
|
+ else:
|
|
|
+ # 飞书表头为空,用 CSV 表头写入
|
|
|
+ print(f"飞书表头为空,使用 CSV 表头写入")
|
|
|
+ header_range = f"{sheet_id}!A1:{column_index_to_letter(len(header))}1"
|
|
|
+ client.batch_update_values(access_token, sheet_token, {
|
|
|
+ "valueRanges": [{"range": header_range, "values": [header]}]
|
|
|
+ })
|
|
|
|
|
|
total_rows = len(converted_rows)
|
|
|
num_cols = len(header)
|