3优化测试通用下载excel模板接口

master
xiaochanghai 1 year ago
parent e5ced9c0ef
commit 5411524e14
  1. 646
      Model/Tiobon.Web.pdm
  2. 13
      Tiobon.Core.Api/Controllers/CommonController.cs
  3. 24
      Tiobon.Core.DataAccess/ReportHelper.cs
  4. 2
      Tiobon.Core.IServices/ICommonServices.cs
  5. 8
      Tiobon.Core.Services/CommonServices.cs

File diff suppressed because it is too large Load Diff

@ -74,4 +74,17 @@ public class CommonController : BaseApiController
return await _commonServices.ExportExcelAsync(param);
}
#endregion
#region 下载导入模板Excel
/// <summary>
/// 下载导入模板Excel
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
[HttpPost, Route("DownImportTemplate")]
public async Task<ServiceResult<QueryExportReturn>> DownImportTemplateAsync([FromBody] QueryExport param)
{
return await _commonServices.DownImportTemplateAsync(param);
}
#endregion
}

@ -8,6 +8,7 @@ using System.Linq.Dynamic.Core;
using System.Text;
using System.Threading.Tasks;
using Google.Protobuf.Collections;
using Microsoft.AspNetCore.Mvc.ModelBinding;
using NPOI.HSSF.UserModel;
using NPOI.OpenXmlFormats.Spreadsheet;
using NPOI.SS.UserModel;
@ -108,12 +109,19 @@ public static class ReportHelper
#endregion
public static async Task<long> ExportExcel(ISqlSugarClient Db, List<QueryExportColumn> tableColumn, DataTable dt)
public static async Task<long> ImportTemplate(ISqlSugarClient Db, List<QueryExportColumn> tableColumn, DataTable dt, string menuName)
{
string filepath = "";
//生成表格
try
{
//生成文件至文件服务器
var fid = SnowFlakeSingle.Instance.NextId();
var filepath = $"{$"{Environment.CurrentDirectory}{Path.DirectorySeparatorChar}wwwroot{Path.DirectorySeparatorChar}files{Path.DirectorySeparatorChar}import{Path.DirectorySeparatorChar}{fid}{Path.DirectorySeparatorChar}"}";
if (!Directory.Exists(filepath))
Directory.CreateDirectory(filepath);
var fname = $"{menuName}.xlsx";
IWorkbook fileWorkbook;
bool IsHSSF = true;
if (Path.GetExtension(filepath) == ".xls")
@ -163,7 +171,7 @@ public static class ReportHelper
ICell cell = erow_1.CreateCell(SortNum);
ICell cel2 = erow_2.CreateCell(SortNum);
string field = drow.field;
;
;
string label = drow.label;
// 批注
string commentText = string.Empty;
@ -277,10 +285,12 @@ public static class ReportHelper
for (int i = 0; i < dt.Rows.Count; i++)
{
IRow row1 = sheet.CreateRow(i + 2);
for (int j = 0; j < dt.Columns.Count; j++)
ICell cell = row1.CreateCell(0);
cell.SetCellValue(i + 1);
for (int j = 1; j <= tableColumn.Count; j++)
{
ICell cell = row1.CreateCell(j);
cell.SetCellValue(dt.Rows[i][j].ToString());
cell = row1.CreateCell(j);
cell.SetCellValue(dt.Rows[i][tableColumn[j - 1].field].ToString());
}
}
@ -344,7 +354,7 @@ public static class ReportHelper
var buf = stream.ToArray();
//保存为Excel文件
using (FileStream fs = new FileStream(filepath, FileMode.Create, FileAccess.Write))
using (FileStream fs = new FileStream(filepath + fname, FileMode.Create, FileAccess.Write))
{
fs.Write(buf, 0, buf.Length);
fs.Flush();

@ -24,4 +24,6 @@ public interface ICommonServices : IBaseServices<RootEntityTkey<int>>
Task<ServiceResult<CommonSelect>> GetSelectAsync(string type);
Task<ServiceResult<QueryExportReturn>> ExportExcelAsync(QueryExport param);
Task<ServiceResult<QueryExportReturn>> DownImportTemplateAsync(QueryExport param);
}

@ -1227,17 +1227,19 @@ public partial class CommonServices : BaseServices<RootEntityTkey<int>>, ICommon
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public async Task<ServiceResult<QueryExportReturn>> ImportTemplateAsync(QueryExport param)
public async Task<ServiceResult<QueryExportReturn>> DownImportTemplateAsync(QueryExport param)
{
var result = new QueryExportReturn();
var tableNmae = string.Empty;
string sql = "select QueryProcedure, EditProcedure, IUDProcedure from Ghrs_Menu where MenuNo='{0}'";
var menuName = string.Empty;
string sql = "select QueryProcedure, EditProcedure, IUDProcedure, MenuName from Ghrs_Menu where MenuNo='{0}'";
sql = string.Format(sql, param.menuName);
var dt = await Db.Ado.GetDataTableAsync(sql);
if (dt.Rows.Count > 0)
{
string queryProcedure = dt.Rows[0]["QueryProcedure"].ToString();
menuName = dt.Rows[0]["MenuName"].ToString();
string[] aaa = queryProcedure.Split('/');
tableNmae = aaa[1];
@ -1273,7 +1275,7 @@ public partial class CommonServices : BaseServices<RootEntityTkey<int>>, ICommon
columns = columns.WhereIF(param.exportSet.ExFields.Any(), x => param.exportSet.ExFields.Contains(x.field)).ToList();
dt = await Db.Ado.GetDataTableAsync("SELECT * FROM " + tableNmae + " WHERE IsEnable=1");
ReportHelper.ExportExcel(Db, columns, dt);
await ReportHelper.ImportTemplate(Db, columns, dt, menuName);
return new ServiceResult<QueryExportReturn>() { Success = true, Message = "查询成功", Data = result, };

Loading…
Cancel
Save