parent
bf03d47784
commit
21676657a5
|
|
@ -12,9 +12,9 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="ClosedXML" Version="0.95.4" />
|
||||||
<PackageReference Include="ExcelDataReader" Version="3.6.0" />
|
<PackageReference Include="ExcelDataReader" Version="3.6.0" />
|
||||||
<PackageReference Include="NeoLua" Version="1.3.13" />
|
<PackageReference Include="NeoLua" Version="1.3.13" />
|
||||||
<PackageReference Include="SpreadsheetLight" Version="3.5.0" />
|
|
||||||
<PackageReference Include="Ude.NetStandard" Version="1.2.0" />
|
<PackageReference Include="Ude.NetStandard" Version="1.2.0" />
|
||||||
<PackageReference Include="YamlDotNet" Version="11.2.1" />
|
<PackageReference Include="YamlDotNet" Version="11.2.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
using Luban.Job.Cfg.Cache;
|
using ClosedXML.Excel;
|
||||||
|
using Luban.Job.Cfg.Cache;
|
||||||
using Luban.Job.Cfg.DataConverts;
|
using Luban.Job.Cfg.DataConverts;
|
||||||
using Luban.Job.Cfg.Utils;
|
using Luban.Job.Cfg.Utils;
|
||||||
using Luban.Job.Common.Types;
|
using Luban.Job.Common.Types;
|
||||||
using Luban.Job.Common.TypeVisitors;
|
using Luban.Job.Common.TypeVisitors;
|
||||||
using Luban.Job.Common.Utils;
|
using Luban.Job.Common.Utils;
|
||||||
using SpreadsheetLight;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
|
@ -72,112 +72,11 @@ namespace Luban.Job.Cfg.Generate
|
||||||
totalRowCount += rec.Data.Apply(fillVisitor, title);
|
totalRowCount += rec.Data.Apply(fillVisitor, title);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
using var workbook = new XLWorkbook(XLEventTracking.Disabled);
|
||||||
|
var sheet = workbook.AddWorksheet();
|
||||||
//var memoryStream = new MemoryStream();
|
sheet.Cell(1, 1).InsertData(dataRangeArray);
|
||||||
//using (var package = new ExcelPackage(memoryStream))
|
|
||||||
//{
|
|
||||||
// var sheet = package.Workbook.Worksheets.Add("sheet1");
|
|
||||||
// for (int i = 0; i < dataRangeArray.Count; i++)
|
|
||||||
// {
|
|
||||||
// var rawRow = dataRangeArray[i];
|
|
||||||
// sheet.Cells[i + 1, 1, i + 1, rawRow.Length].FillList(rawRow);
|
|
||||||
// }
|
|
||||||
// sheet.Cells.AutoFitColumns();
|
|
||||||
// content = package.GetAsByteArray();
|
|
||||||
//}
|
|
||||||
|
|
||||||
var worksheet = new SLDocument();
|
|
||||||
//var rows = new List<Row>();
|
|
||||||
//for (int i = 0; i < dataRangeArray.Count; i++)
|
|
||||||
//{
|
|
||||||
// var rawRow = dataRangeArray[i];
|
|
||||||
// var cells = new List<Cell>();
|
|
||||||
// for (int j = 0; j < rawRow.Length; j++)
|
|
||||||
// {
|
|
||||||
// cells.Add(new Cell(j + 1, rawRow[j]));
|
|
||||||
// }
|
|
||||||
// rows.Add(new Row(i + 1, cells));
|
|
||||||
//}
|
|
||||||
//worksheet.Rows = rows;
|
|
||||||
for (int i = 0; i < dataRangeArray.Count; i++)
|
|
||||||
{
|
|
||||||
var rawRow = dataRangeArray[i];
|
|
||||||
for (int j = 0; j < rawRow.Length; j++)
|
|
||||||
{
|
|
||||||
object v = dataRangeArray[i][j];
|
|
||||||
if (v != null)
|
|
||||||
{
|
|
||||||
switch (v)
|
|
||||||
{
|
|
||||||
case int t:
|
|
||||||
{
|
|
||||||
worksheet.SetCellValue(i + 1, j + 1, t);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case string t:
|
|
||||||
{
|
|
||||||
worksheet.SetCellValue(i + 1, j + 1, t);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case float t:
|
|
||||||
{
|
|
||||||
worksheet.SetCellValue(i + 1, j + 1, t);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case double t:
|
|
||||||
{
|
|
||||||
worksheet.SetCellValue(i + 1, j + 1, t);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case long t:
|
|
||||||
{
|
|
||||||
worksheet.SetCellValue(i + 1, j + 1, t);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case short t:
|
|
||||||
{
|
|
||||||
worksheet.SetCellValue(i + 1, j + 1, t);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case bool t:
|
|
||||||
{
|
|
||||||
worksheet.SetCellValue(i + 1, j + 1, t);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case DateTime t:
|
|
||||||
{
|
|
||||||
|
|
||||||
worksheet.SetCellValue(i + 1, j + 1, t);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
worksheet.SetCellValue(i + 1, j + 1, v.ToString());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
worksheet.AutoFitColumn(1, title.ToIndex + 1);
|
|
||||||
worksheet.AutoFitRow(1, dataRangeArray.Count);
|
|
||||||
var stream = new MemoryStream();
|
var stream = new MemoryStream();
|
||||||
worksheet.SaveAs(stream);
|
workbook.SaveAs(stream);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//var tempFile = $"{Path.GetTempFileName()}_{fileName}.tmp";
|
|
||||||
//var outputFile = $"{Path.GetTempFileName()}_{fileName}.xlsx";
|
|
||||||
//var outputStream = new FileStream(tempFile, FileMode.CreateNew, FileAccess.ReadWrite);
|
|
||||||
//var writer = ExcelDataWriter.ExcelDataWriter.GetAsByteArray(dataRangeArray, new ExcelDataWriter.ClassMap<object[]>());
|
|
||||||
//using (FastExcel.FastExcel fastExcel = new FastExcel.FastExcel(new System.IO.FileInfo(tempFile), new System.IO.FileInfo(outputFile)))
|
|
||||||
//{
|
|
||||||
// // Write the data
|
|
||||||
// fastExcel.Write(worksheet, "sheet1");
|
|
||||||
//}
|
|
||||||
//outputStream.Close();
|
|
||||||
//outputStream.Flush();
|
|
||||||
byte[] content = DataUtil.StreamToBytes(stream);
|
byte[] content = DataUtil.StreamToBytes(stream);
|
||||||
var md5 = CacheFileUtil.GenStringOrBytesMd5AndAddCache(filePath, content);
|
var md5 = CacheFileUtil.GenStringOrBytesMd5AndAddCache(filePath, content);
|
||||||
FileRecordCacheManager.Ins.AddCachedRecordOutputData(table, records, genType, md5);
|
FileRecordCacheManager.Ins.AddCachedRecordOutputData(table, records, genType, md5);
|
||||||
|
|
|
||||||
|
|
@ -171,7 +171,12 @@ namespace Luban.Job.Common.Utils
|
||||||
case ELanguage.JS:
|
case ELanguage.JS:
|
||||||
case ELanguage.TYPESCRIPT:
|
case ELanguage.TYPESCRIPT:
|
||||||
case ELanguage.PYTHON:
|
case ELanguage.PYTHON:
|
||||||
case ELanguage.RUST: return System.Web.HttpUtility.HtmlEncode(comment).Replace("\n", "<br/>");
|
case ELanguage.RUST:
|
||||||
|
#if !LUBAN_LITE
|
||||||
|
return System.Web.HttpUtility.HtmlEncode(comment).Replace("\n", "<br/>");
|
||||||
|
#else
|
||||||
|
throw new NotSupportedException();
|
||||||
|
#endif
|
||||||
default: throw new Exception($"unknown language:{curLan}");
|
default: throw new Exception($"unknown language:{curLan}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue