导入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>