我需要读取10x5324单元格的xlsx文件
这是我想要做的事情的要点:
from openpyxl import load_workbook
filename = 'file_path'
wb = load_workbook(filename)
ws = wb.get_sheet_by_name('LOG')
col = {'Time':0 ...}
for i in ws.columns[col['Time']][1:]:
print i.value.hour
Run Code Online (Sandbox Code Playgroud)
代码花了太长时间才能运行它应该(我正在执行操作,而不是打印)并且过了一段时间我不耐烦并取消了它.
知道如何在优化的阅读器中使用它吗?我需要迭代一系列行,而不是遍历所有行.这是我试过的,但这是错的:
wb = load_workbook(filename, use_iterators = True)
ws = wb.get_sheet_by_name('LOG')
for i in ws.iter_rows[1:]:
print i[col['Time']].value.hour
Run Code Online (Sandbox Code Playgroud)
没有范围功能,有什么办法可以做到吗?
我想有一种方法可以做到:
for i in ws.iter_rows[1:]:
if i.row == startrow:
continue
print i[col['Time']].value.hour
if i.row == endrow:
break
Run Code Online (Sandbox Code Playgroud)
但是有更优雅的解决方案吗?(这不是顺便说一句)
出于学习目的,我正在尝试将DLL加载到MATLAB中,该MATLAB调用另一个DLL中定义的函数.我是所有这一切的新手,还没有弄清楚我将如何做到这一点,也没有设法找到任何相关的资源.
我在C++中编写了一个小DLL,它是这样的:
//example_dll.h
#ifndef EXAMPLE_DLL_H
#define EXAMPLE_DLL_H
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BUILDING_EXAMPLE_DLL
#define EXAMPLE_DLL __declspec(dllexport)
#else
#define EXAMPLE_DLL __declspec(dllimport)
#endif
int EXAMPLE_DLL Double(int x);
#ifdef __cplusplus
}
#endif
#endif // EXAMPLE_DLL_H
Run Code Online (Sandbox Code Playgroud)
和源文件:
//example_dll.cpp
#include <stdio.h>
#include "example_dll.h"
int Double(int x)
{
return 2 * x;
}
Run Code Online (Sandbox Code Playgroud)
我使用MinGW w64构建并使用loadlibrary('example_dll')
没有任何问题加载到matlab中.
我现在想要定义这个功能
int Double(int x)
{
return 2 * x;
}
Run Code Online (Sandbox Code Playgroud)
在另一个DLL中,(让我们称之为DLL2)并从我的example_dll中调用该函数.最简单的方法是什么?
我将很感激一个简短的示例代码(最好是运行时动态链接,不使用模块定义(.def)文件)或链接到互联网上的相关资源.谢谢!
简单解决方案的解决方案:
我想我得到了解决方案.无论如何它似乎都在起作用.
我创建了一个名为DLL的DLL interface_DLL
,我将其加载到MATLAB中并从中调用了我的函数example_dll
这里是:
//interface_dll.h
#ifndef INTERFACE_DLL_H
#define INTERFACE_DLL_H
#ifdef __cplusplus
extern …
Run Code Online (Sandbox Code Playgroud)