[英]How to split excel file based on Specific Column
我有像這樣的示例數據(在Excel中)
名稱放置A JKT B JKT C CGK D JKT E CGK F BBK G JKT H BBK I BBK J BBK K CGK L CGK
我已經獲得了包含數據的3個++文件,例如,步驟是,我必須首先將文件合並到1個excel文件中,而我已經組合的輸出必須根據Place拆分成許多excel文件。
例如:因為數據有3個不同的位置,所以它將為JKT,CGK和BBK創建3個不同的文件
我試圖結合的代碼
xlApp = new excel.Application();
xlWb = xlApp.Workbooks.Open(fileName);
xlWs = xlWb.Sheets[1];
xlRange = xlWs.UsedRange;
row = xlRange.Rows.Count;
col = xlRange.Columns.Count;
fulldata = new string[row][];
for (int i = 0; i < fulldata.Length; i++)
{
fulldata[i] = new string[col];
//MessageBox.Show(i.ToString());
}
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
try
{
fulldata[i][j] = xlWs.Cells[i + 1, j + 1].value2.ToString();
}
catch (Exception ee)
{
fulldata[i][j] = "";
}
}
}
//create new excel file for combined data
xlApp1 = new excel.Application();
xlWb1 = xlApp1.Workbooks.Add();
xlWs1 = (excel.Worksheet)xlWb1.Worksheets.get_Item(1);
xlRange1 = xlWs1.UsedRange;
newFileRow = xlRange1.Rows.Count;
newFileCol = xlRange1.Columns.Count;
//Combine
if (newFileRow == 1)
{
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
xlWs1.Cells[i + 1, j + 1] = fulldata[i][j];
}
}
}
else
{
for (int i = newFileRow+1; i < row + newFileRow; i++)
{
for (int j = 0; j < col; j++)
{
xlWs1.Cells[i, j + 1] = fulldata[count][j];
count++;
}
}
}
//Split ExcelFile
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
//insertcode here
}
}
問題是,數據有超過40個地方,所以我不知道分割它的有效方法,因為如果我使用硬編碼模式,它將不是效率和難以閱讀。
Hardcode =為40個不同的地方定義變量,定義40個不同excel的excel.Application,並使用if為40 ++個不同的地方
預期結果(來自示例):第一個excel:JKT.xlsx
Name Place
A JKT
B JKT
D JKT
第二名:CGK.xlsx
Name Place
C CGK
E CGK
K CGK
第3名excel:BBK.xlsx
Name Place
F BBK
任何幫助將不勝感激和語法修正
為什么不使用查詢? 讀取文件后,輸入ORDER BY
語句。
SqlCommand cmd = "SELECT NAME, PLACE FROM namaTabel ORDER BY PLACE ASC";
cmd.fulldata();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.