private static List <List <string> > GetFromExcel(string excelFilepath, ImportFiles obj) { var list = new List <List <string> >(); using (var file1 = new FileStream(excelFilepath, FileMode.Open, FileAccess.Read)) { var hssfworkbook = new XSSFWorkbook(file1); ISheet sheet1 = hssfworkbook.GetSheetAt(0); for (var i = 0; i < obj.Files.Files.Count + 1; i++) { var row0 = sheet1.GetRow(i); if (row0 == null) { throw new Exception("行数不对!"); } var vals = new List <string>(); for (var j = 0; j < obj.Props.Count; j++) { var cell0 = row0.GetCell(j); if (cell0 == null) { vals.Add(String.Empty); } else { var cellVal = GetStringValue(cell0); vals.Add(cellVal); } } list.Add(vals); } file1.Close(); } return(list); }
public static string Write(ImportFiles obj) { var rootPath = obj.Files.RootDir; var excelFilepath = rootPath.TrimEnd('\\') + ".xlsx"; var jsonFilepath = rootPath.TrimEnd('\\') + ".json"; var list = new List <List <string> >(); var headers = GetHeaders(obj.Props); list.Add(headers); for (var i = 0; i < obj.Files.Files.Count; i++) { var vals = obj.Files.GetProps(obj.Files.Files[i]); if (obj.AddedPropValues.Count > 0) { vals.AddRange(obj.AddedPropValues[i]); } list.Add(vals); } try { To(excelFilepath, list); } catch (Exception) { throw new Exception("Excel文件被占用,请关闭:" + excelFilepath); } var json = JsonConvert.SerializeObject(obj, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); File.WriteAllText(jsonFilepath, json); return(excelFilepath); }