Reading Selected Columns from an Excel Using the "readtable" Option

373 次查看(过去 30 天)
If we have an Excel file, and instead of selecting a range of columns, I would like to select certain columns. The following syntax can read the range of columns
Table_1 = readtable('FileName.xlsx','Sheet','SheetName','Range','A1:E11'). What is the syntax for reading column A from row 50 to 10000 and column C from row 50 to10000 and skipping columns B?
This is MATLAB 2019a.
Thanks.

采纳的回答

Guillaume
Guillaume 2019-9-21
readtable does not accept disjoint ranges (e.g. 'A50:A10000,C50:C10000') so you don't have a choice but read the B column as well and discard afterward:
Table_1 = readtable('FileName.xlsx','Sheet','SheetName','Range','A50:C10000'); %read column A to C
Table_1(:, 2) = []; %discard B column
Alternatively, you could use detectImportOptions then modify the import options to remove the columns you don't want:
opts = detectImportOptions('FileName.xlsx','Sheet','SheetName','Range','A50:C10000'); %still have to specify the full range
opts.SelectedVariableNames = opts.SelectedVariableNames([1, 3]); %ignore second column
Table_1 = readtable(FileName.xlsx', opts)
Another workaround might be to name the desired range in excel but I can't remember if you can create named disjoint ranges. If it's possible, you could pass the range name to readtable. Of course, this requires the range to be named beforehand in excel, so may not be practical.

更多回答(0 个)

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by