• C#控制器保存文件


            /// <summary>
            /// 新旧分摊数据对比
            /// </summary>
            static void AllocRecordSummaryContrast()
            {
                List<AllocRecordSummaryDiff> recordSummaryDiffs = new List<AllocRecordSummaryDiff>();
    
                AllocationLogBLL bll = new AllocationLogBLL();
                foreach (var dtItem in _dataTypes)
                {
                    foreach (var item in _serviceTypePairs)
                    {
                        if (item.Key == "ALL")
                        {
                            continue;
                        }
                        List<AllocRecordSummaryDiff> diffs = bll.AllocRecordSummaryContrast(item.Key, dtItem.Key);
                        if (diffs != null && diffs.Count > 0)
                        {
                            recordSummaryDiffs.AddRange(diffs);
                        }
                    }
                }
    
    
    
    
                var table = InitTable(recordSummaryDiffs);
                var exporter = new ExcelExporter();
                var buffer = exporter.ExportAsByteArray(table).GetAwaiter().GetResult();
                //创建本地文件夹
                string fileFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Data");
                if (!Directory.Exists(fileFolder))
                    Directory.CreateDirectory(fileFolder);
    
                //本地文件路径 \\
                var filepath = Path.Combine(fileFolder, $"新旧分摊差异{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx");
    
                //HttpClient _httpClient = new HttpClient() { Timeout = TimeSpan.FromMinutes(30) };
                try
                {
    
                    //创建本地文件写入流
                    using (var stream = new FileStream(filepath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
                    {
                        stream.Write(buffer, 0, buffer.Length);
                    }
    
                    Console.WriteLine("导出差异文件:" + filepath);
    
                }
                catch
                {
                    throw;
                }
    
            }
    
    
            /// <summary>
            /// 初始化导出的数据
            /// </summary>
            /// <param name="dataList"></param>
            /// <returns></returns>
            static DataTable InitTable(List<AllocRecordSummaryDiff> dataList)
            {
    
    
                var table = new DataTable();
                table.Columns.Add("服务类型");
                table.Columns.Add("业务单号");
                table.Columns.Add("数据类型");
                table.Columns.Add("对账编码");
                table.Columns.Add("总金额");
                table.Columns.Add("总金额差异");
                table.Columns.Add("成本计费重合计");
                table.Columns.Add("成本计费重合计差异");
                table.Columns.Add("应收计费重合计");
                table.Columns.Add("应收计费重合计差异");
                table.Columns.Add("总票数");
                table.Columns.Add("总票数差异");
                table.Columns.Add("备注");
    
                foreach (var data in dataList)
                {
                    var row = table.NewRow();
    
                    row["服务类型"] = data.service_type;
                    row["业务单号"] = data.bsn_number;
                    row["数据类型"] = data.data_type == "1" ? "预估" : "实际";
                    row["对账编码"] = data.rec_code_old;
                    row["总金额"] = data.amount_old;
                    row["总金额差异"] = data.amount_diff;
                    row["成本计费重合计"] = data.server_weight_old;
                    row["成本计费重合计差异"] = data.server_weight_diff;
                    row["应收计费重合计"] = data.shipper_weight_old;
                    row["应收计费重合计差异"] = data.shipper_weight_diff;
                    row["总票数"] = data.bill_count_old;
                    row["总票数差异"] = data.bill_count_diff;
                    row["备注"] = data.remarks;
    
    
                    table.Rows.Add(row);
                }
    
                return table;
            }
  • 相关阅读:
    JS图片宽度自适应移动端
    SQL语句中drop、truncate和delete的用法
    C#求百分比
    JS刷新后回到页面顶部
    JS返回上一页并刷新代码整理
    jQuery 获取设置图片 src 的路径
    C#银行卡号每隔4位数字加一个空格
    input标签内容改变时触发事件
    C#的Split()方法
    数据库常见性能问题调优
  • 原文地址:https://www.cnblogs.com/zyx321/p/16354309.html
Copyright © 2020-2023  润新知