我与使用Excel的人一起工作,不断添加或减去我不知道的行。我必须为数据刮取文档,并且找到标题的行会根据情绪发生变化。
我的挑战是通过检测标题的位置来处理这些振荡电流。
我首先使用Uncaught TypeError: Cannot read property 'then' of undefined
和使用工作簿中的值的一些条件语句组织我的scrape。
我最初的尝试有效并且很长(因此我不会发布它)但涉及引入整个工作表,而不是切片:
import superagent from 'superagent';
import superagentPromisePlugin from 'superagent-promise-plugin';
import {RequestMethods} from '../constant';
const request = ({url, method = RequestMethods.GET, param, body, header}) => {
let methodStr;
switch (method) {
case RequestMethods.POST:
methodStr = 'POST';
break;
case RequestMethods.PUT:
methodStr = 'PUT';
break;
case RequestMethods.DELETE:
methodStr = 'DELETE';
break;
default:
methodStr = 'GET';
break;
}
let req = superagent(methodStr, url).use(superagentPromisePlugin);
//set header
if (header) {
req.set(header)
}
//set param
if (param) {
req.query(param)
}
//set body
if (body) {
req.send(body)
}
return req;
};
export default request;
然而,它很大,我宁愿选择更有针对性的选择。标题值永远不会更改,也不会在此行之后显示数据。
您是否知道使用xlrd
或from xlrd import open_workbook
book = open_workbook(fName)
sheet = book.sheet_by_name(sht)
return book,sheet
根据表单中的找到值隐式获取标题的方法?
以下是pandas.ExcelFile
的尝试:
pandas.read_excel
我无法让代码工作,除非我给调用正确的标头值,这正是我希望避免的。
这个previous question似乎提出了类似的问题,但没有解决隐含查找标题的问题。
答案 0 :(得分:0)
通过ExcelFile对象执行相同的循环:
xlsx = pd.ExcelFile(fName)
sheet = xlsx.sheet_by_name(sht)
# apply the same algorithm you wrote against xlrd here
# ... results in having header_row = something, 0 based
dataFrame = pd.read_excel(xlsx, sht,
parse_cols=21, merge_cells=noMerge,
skip_rows=header_row)