我正在加载一个Excel文件,如网上许多地方所示.
OpenFileDialog chooseFile = new OpenFileDialog();
chooseFile.Filter = "Excel files (*.xls,*.xlsl)|*.xls;*.xlsx";
if (chooseFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
selectedFileName = chooseFile.FileName;
textBox1.Text = selectedFileName;
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
Workbook wb = excel.Workbooks.Open(selectedFileName);
Sheets excelSheets = wb.Worksheets;
string currentSheet = "Sheet 1";
excelWorksheet = (Worksheet)excelSheets.get_Item(currentSheet);
Range usedRange = excelWorksheet.UsedRange;
Range lastCell = usedRange.SpecialCells(XlCellType.xlCellTypeLastCell, Type.Missing);
lastRow = lastCell.Row;
lastColumn = lastCell.Column;
//release com object you won't need.
Marshal.ReleaseComObject(excel);
Marshal.ReleaseComObject(wb);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试从具有此功能的单元格中获取单个值时出现问题:
private string getCellValue(Worksheet Sheet, int Row, int Column)
{
var cellValue = …Run Code Online (Sandbox Code Playgroud) 我知道这里已经部分回答了这个问题。
无论如何,我不确定我是否实现了我想要的。我将简要说明我在做什么:
一切都很顺利,但我收到了一些 numpy 运行时警告:
RuntimeWarning: Mean of empty slice.RuntimeWarning: invalid value encountered in double_scalars给我带来麻烦的函数是实际提取执行此操作的值的函数: v = np.mean(v)
我知道错误可能是由零列表或一些 NaN/Inf 或值中的任何内容引起的。
我想通过从我的数据集中扔掉当前的 .json 样本来摆脱它们。
所以我设置了: np.seterr(all='warn')
我编写了这个笨拙的代码来试图抓住它:
def ExtracValues(d):
for v in d.values():
if isinstance(v, dict):
yield from ExtracValues(v)
else:
if isinstance(v,list):
# v = np.mean(v) #just averaging vectorial values of features. #it may be here that raises the empty slice warning of numpy.
try:
v …Run Code Online (Sandbox Code Playgroud)