这似乎是一个愚蠢的问题,但我真的找不到解决方案!我只需要从Excel文件中读取特定列。 该文件有多个不同列数的工作表,但我需要阅读的那些。我可以为csv文件执行此操作,但不能用于excel!这是我现在的代码,它读取前14列(但我需要的列可能并不总是在前14列)。我不能只读取它们,因为def save(self, *args, **kwargs):
mylist = ['up', 'down', 'strange', 'charm',....]
if slef.kind in mylist:
super(Foo, self).save(*args, **kwargs)
else:
raise Exception, "kind take only one of the following values: up, down, strange, charm,...."
会引发错误,引用行不匹配(表单中的行数不同)。
编辑:我通过省略rbind
参数解决了这个问题,它作为具有不同列号的工作表只有列标题。不过,这绝不是一个强有力的解决方案,所以我希望有人能比我做得更好。
col_types
我正在尝试做这样的事情:
INV <- lapply(sheets, function(X) read_excel("./Inventory.xlsx", sheet = X, col_types = c(rep("text", 14))))
names(INV) <- sheets
INV <- do.call("rbind", INV)
但是,对于Excel文件。我尝试使用INV <- lapply(FILES[grepl("Inventory", FILES)],
function(n) read_csv(file=paste0(n), col_types=cols_only(DIVISION="c",
DEPARTMENT="i",
ITEM_ID="c",
DESCRIPTION="c",
UNIT_QTY="i",
COMP_UNIT_QTY="i",
REGION="c",
LOCATION_TYPE="c",
ZONE="c",
LOCATION_ID="c",
ATS_IND="c",
CONTAINER_ID="c",
STATUS="c",
TROUBLE_CODES="c")))
中的read.xlsx
和openxlsx
中的read_excel
,但不支持这样做。必须有其他方式。不要担心列类型,我对所有字符都很好。
如果可以使用readxl
或readxl
完成此操作,我将非常感谢。