是否有一種簡單的方法從單個Excel表格創建多個電子表格?從單個Excel文件創建多個電子表格
例如,如果我在以下格式的Excel文件:
可能一個批處理文件來創建單獨的文件列表中的每個號碼?每個文件將包含該Number的所有行,並使用包含Number的文本格式來命名,如「Number_123_rows.xls」。
是否有一種簡單的方法從單個Excel表格創建多個電子表格?從單個Excel文件創建多個電子表格
例如,如果我在以下格式的Excel文件:
可能一個批處理文件來創建單獨的文件列表中的每個號碼?每個文件將包含該Number的所有行,並使用包含Number的文本格式來命名,如「Number_123_rows.xls」。
這應該做,你想要什麼。 它的工作原理與逗號分隔 CSV文件,但你可以改變你的需求(delims=
):
@echo off
for /F "tokens=1* delims=," %%i in (file.csv) do (
echo %%i,%%j >>%%i.csv
)
(您可能需要刪除「Number.csv」)
對於轉換XLS到CSV,這可能會幫助(我沒有嘗試): file
編輯 如果「數字」是另一列 單升ine由幾個由一個或多個分隔符(在本例中爲逗號)分隔的「標記」組成 您可以獲取標記1,標記2,標記3等。「*」表示「該行的其餘部分」 因此,如果數字是2欄,寫
for /F "tokens=1,2,* delims=," %%a in (file.csv) do (echo %%a,%%b,%%c >>%%b.csv)
(注意,寫入文件%% b.csv(編號爲第2列)
,或者如果你想改變這個順序:
for /F "tokens=1,2,* delims=," %%a in (file.csv) do echo %%b,%%a,%%c
(注意a,b和c的順序) 如果您要使用2 6令牌,它們將被命名爲%% a到%% z
您可以將它擴展爲「令牌= 1,2,3,4,5,6,7」等,當您需要它重新排列順序時。
EDIT2: 的頭,只是前面加上一個行「爲」直插:
echo Number,Title,Third Column >file.csv
禰>
創建一個新文件(刪除現有的文件),而>>
追加到文件
(新的答案,以避免更多的混亂 - 很明顯,我應避免在深夜工作)
這是假設,你只有你starti ng「file.csv」,用於新文件名的列是第2列,並且您想要將「a,b,c,d,e,...」重新排序爲「b,a,d,c, e,...「
它檢查,如果需要的文件(例如「123.csv」)已經存在,如果不存在,它會用所需的Header創建它(而不是首先創建文件,然後添加標頭後綴)。
@echo off
set "header=Title,Number,Whatever,Something,Anotherthing"
for /F "tokens=1-4* delims=," %%a in (file.csv) do (
if not exist "%%b.csv" (
rem when the file does not exist, create a new one with the header:
echo %header% >"%%b.csv"
)
rem append next line:
echo %%b,%%a,%%d,%%c,%%e >>%%i.csv
)
(您可能需要刪除「Number。csv「)
謝謝,那就是我一直在尋找的東西。感謝幫助。 – kmfdm
是否可以將該XLS另存爲CSV文件?這是純文本,並且易於批量處理 – Stephan
這是行得通的,我不認爲可以添加該步驟到一個批處理文件? – kmfdm