Importing a table with unknown number of rows

조회 수: 7 (최근 30일)
KAE
KAE 2021년 4월 16일
댓글: KAE 2021년 4월 18일
I have several xlsx files that contain the same columns, but different number of rows. An example xlsx file is attached. I would like to import them as tables, so I used Import Wizard to generate the attached function. The problem with the function is that it specifies the row length in opts.DataRange. However I would like to use this function on other xlxs files with the same columns, but different number of rows. How do I edit this function so it can accept any number of rows? Here's what I've tried,
dataLines = [2, Inf]; % Want to go from the 2th row to the last unknown row. Doesn't work.
opts.DataRange = "A" + dataLines(1, 1) + ":C" + dataLines(1, 2); % Columns A to C are imported from Excel file
but it crashes. I also tried
dataLines = [2, 500]; % I happen to know I always have less than 500 rows
but then my table actually has 500 rows, with the last several rows undesirably empty. I could manually delete them but I suspect there's a better way.

채택된 답변

Stephan
Stephan 2021년 4월 16일
I dont think it is needed to specify this, using readtable function. I never used this option to import a .csv-file as table in Matlab.
  댓글 수: 5
Stephan
Stephan 2021년 4월 17일
Its a one liner:
>> myTable = readtable('example_cooking_workbook.xlsx','PreserveVariableNames',true)
myTable =
39×3 table
Technique Serve Date Dish Number
_____________ ___________ ___________
{'salt' } 23-Jun-1980 57
{'saute' } 18-Jun-1992 93
{'scald' } 07-Jun-1994 79
{'scallop' } 18-Mar-1994 77
{'scoop' } 02-Aug-1996 57
{'score' } 17-Sep-1994 93
{'scramble' } 18-Mar-1994 81
{'sear' } 11-Apr-1997 68
{'season' } 17-Oct-1996 76
{'separate' } 10-Apr-1998 70
{'serve' } 12-Aug-1999 54
{'shell' } 23-Jul-1999 62
{'shirr' } 07-Feb-2000 56
{'shred' } 07-Feb-2001 59
{'shuck' } 03-Aug-2001 62
{'sieve' } 28-Nov-2000 71
{'sift' } 18-Dec-2000 52
{'simmer' } 03-Dec-1999 95
{'skewer' } 21-Sep-2001 97
{'skim' } 19-Dec-2003 75
{'skin' } 12-Aug-2004 74
{'slice' } 16-Nov-2004 67
{'sliver' } 29-Jan-2004 95
{'slow cook'} 14-Mar-2005 68
{'smoke' } 23-Mar-2005 56
{'snip' } 06-May-2004 89
{'soak' } 23-Mar-2005 69
{'soft boil'} 17-Nov-2004 62
{'souse' } 28-Jul-2008 70
{'sprinkle' } 28-Mar-2008 55
{'steam' } 19-Jun-2008 57
{'steep' } 29-Nov-2007 97
{'stew' } 30-Mar-2012 98
{'stir' } 04-Oct-2010 79
{'stir fry' } 30-Aug-2010 53
{'strain' } 15-Dec-2011 62
{'stuff' } 31-Aug-2011 68
{'sweat' } 27-Feb-2013 91
{'sweeten' } 24-Aug-2012 51
KAE
KAE 2021년 4월 18일
Thanks! I wonder why the Import Wizard function generation makes it so complicated? Well, serves me right for relying on it.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Spreadsheets에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by