コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }