c#创建文件并写入数据导出到前端

        [AcceptVerbs("GET")]
        public ActionResult GetColumnLinkCallBack()
        {
            //允许ajax跨域
            Response.AppendHeader("Access-Control-Allow-Origin", "*");

            List<object> list = new List<object>();

            var createTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            var json1 = new
            {
                url = "http://baidu.com",
                columnName = "test",
                level = 1,
                webId = 202307240913,
                createTtime = createTime,
                isColumn = 0,
                flag = 1
            };
            list.Add(json1);

            string outPath = ContextPath + @"template\columnlink\栏目链接.jsonp";
            FileStream fs = null;
            if (!System.IO.File.Exists(outPath))
            {
                 fs = new FileStream(outPath, FileMode.Create, FileAccess.Write);
            }
            else
            {
                 fs = new FileStream(outPath, FileMode.Open, FileAccess.Write);
            }
            //开始写入  
            StreamWriter sw = new StreamWriter(fs);
            string lines = ConvertJsonString(JsonConvert.SerializeObject(list));
            sw.WriteLine(lines);
            //清空缓冲区  
            sw.Flush();
            //关闭流  
            sw.Close();
            fs.Close();
            return File(outPath, "application/vnd.ms-excel;charset=utf-8", "栏目链接导出.jsonp");
        }




 /// <summary>
        /// 字符串转json字符串
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        private static string ConvertJsonString(string str)
        {
            //格式化json字符串
            JsonSerializer serializer = new JsonSerializer();
            TextReader tr = new StringReader(str);
            JsonTextReader jtr = new JsonTextReader(tr);
            object obj = serializer.Deserialize(jtr);
            if (obj != null)
            {
                StringWriter textWriter = new StringWriter();
                JsonTextWriter jsonWriter = new JsonTextWriter(textWriter)
                {
                    Formatting = Formatting.Indented,
                    Indentation = 4,
                    IndentChar = ' '
                };
                serializer.Serialize(jsonWriter, obj);
                return textWriter.ToString();
            }
            else
            {
                return str;
            }
        }

 

posted on 2023-07-24 14:19  五官一体即忢  阅读(82)  评论(0)    收藏  举报

导航