導入Excel數據,而不是在單行或列中找到所有信息我正在嘗試導入名為第1行的ExceI數據文件,但實際數據列標題從第7行開始,數據從第8行開始(請參閱附件)。 我想導入的數據如下所示:
名稱日期流量 - 濃度-Ug / L(25)載重噸(25)
S382_P 06/18/2015 90.890579 93 0.010426405
有沒有人建議我如何讀取這種類型的數據,以便電台名稱與數據相關聯?請告訴我。 謝謝!
Re:導入Excel數據,而不是在單行或列中找到所有信息如果使用Excel嚮導,則執行此操作非常簡單。在JMP中,轉到
文件==>打開
然後導航到Excel電子表格的位置。
在要讀入的文件上單擊一次,以突出顯示它。
然後轉到導航窗口的左下方區域,並單擊“打開”旁邊的下拉箭頭。
選擇“使用Excel嚮導”
在嚮導中,您將能夠選擇具有列標題的行(6)
和數據開始的行(7)Re:導入Excel數據,而不是在單行或列中找到所有信息Jim,如果所有數據都包含在單獨的列中,但是我有不同的文件佈局,所提供的說明都可以。 在附件中,您將看到工作站名稱只出現一次第1行 ,當標題開始時第7行和中的數據第8行。 站名稱“堆疊”在數據標題和列的頂部。 請讓我知道如何讀取電台名稱,然後將該電台名稱與相應的標題/數據相關聯。
在附帶的示例文件中,列出了4個站的數據,這些站的名稱可在Excel文件地址中找到:A1,I1,Q1,Y1(以黃色突出顯示)。 對於文件中的第一個站,站名是S382_P(在A1中找到),該站的數據在列A-H中找到(頭部在Row7中開始,數據在Row8上);第二個站是S382_C(在I1中找到),該站的數據在列I-P等中找到。 當我將其作為JMP數據文件時,我希望導入的數據看起來像這樣:
名稱日期流量 - 濃度-ug / L(25)載重噸(25) 更多的colums。 。。
S382_P 06/18/2015 90.890579 93 0.010426405
Re:導入Excel數據,而不是在單行或列中找到所有信息對不起......我誤解了你原來的問題。 下面是一個與您提供的示例數據表一起使用的腳本。 只需將Open()函數中的路徑更改為數據表的路徑,然後運行該腳本。
Names default to here(1);
dtOrig = Open(
"<PATH to="" excel="" file="">\Excel_import_example_file.xlsx",
Worksheets( "example" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 0 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 1 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
// Create a new table with the Column names on row 7 from the original
dtResult = New Table("Final");
dtResult << New Column("Name",Character);
col=1;
While(col>0,
dtResult << New Column(dtOrig[7,col]);
If(left(dtOrig[1,col+1],5)=="Name:",col=-1);
col=col+1;
);
// Now Populate the Table
For( col = 1, col <= N Cols( dtOrig ), col++,
If( Left( dtOrig[1, col ], 5 ) == "Name:",
dtResult << Add Rows( 1 );
resultCol = 1;
Column( dtResult, resultCol)[ N Rows( dtResult ) ] = Trim( Substr( Column( dtOrig, col )[1], 6 ) );
);
resultCol = resultCol + 1;
Column( dtResult, resultCol)[ N Rows( dtResult ) ] = Num( Column( dtOrig, col )[8] );
);
close( dtOrig, nosave );</PATH>

Re:導入Excel數據,而不是在單行或列中找到所有信息謝謝 。。。但是如果我只有一行數據,腳本就可以工作。但它似乎不適用於多行數據。對不起,我發送了一個簡短的文件作為示例,但我使用的數據文件有多行數據。我將較長版本的文件附加到此電子郵件中(請參閱工作表“示例”)。如果你可以幫助我閱讀多行數據,那將是很棒的。
[CID:image001.png@01D51188.A1E017A0]
Re:導入Excel數據,而不是在單行或列中找到所有信息看起來您可能附加了圖像,但由於某種原因它不起作用。您可以返回並編輯您的帖子以嘗試再次附加圖像嗎?Re:導入Excel數據,而不是在單行或列中找到所有信息如果您引用的多行是第8行之後的其他行,它們與第8行具有相同的結構,則以下腳本將起作用
Names Default To Here( 1 );
dtOrig = Open(
"<PATH to="" file="">\Excel_import_example_file.xlsx",
Worksheets( "example" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 0 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 1 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
// Create a new table with the Column names on row 7 from the original
dtResult = New Table( "Final" );
dtResult << New Column( "Name", Character );
col = 1;
While( col > 0,
dtResult << New Column( dtOrig[7, col] );
If( Left( dtOrig[1, col + 1], 5 ) == "Name:",
col = -1
);
col = col + 1;
);
For( theRow = 8, theRow <= N Rows( dtOrig ), theRow++,
// Now Populate the Table
For( col = 1, col <= N Cols( dtOrig ), col++,
If( Left( dtOrig[1, col], 5 ) == "Name:",
dtResult << Add Rows( 1 );
resultCol = 1;
Column( dtResult, resultCol )[N Rows( dtResult )] = Trim( Substr( Column( dtOrig, col )[1], 6 ) );
);
resultCol = resultCol + 1;
Column( dtResult, resultCol )[N Rows( dtResult )] = Num( Column( dtOrig, col )[theRow] );
)
);
Close( dtOrig, nosave );</PATH>