src/SSCMS.Core/Utils/Office/ExcelObject.cs
(开头部分) 8KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using SSCMS.Models;
using SSCMS.Services;
using SSCMS.Utils;
namespace SSCMS.Core.Utils.Office
{
public class ExcelObject
{
private readonly IDatabaseManager _databaseManager;
private readonly IPathManager _pathManager;
public ExcelObject(IDatabaseManager databaseManager, IPathManager pathManager)
{
_databaseManager = databaseManager;
_pathManager = pathManager;
}
public async Task CreateExcelFileForContentsAsync(string filePath, Site site,
Channel channel, IEnumerable<int> contentIdList, List<string> displayAttributes, bool isPeriods, string startDate,
string endDate, bool? checkedState)
{
DirectoryUtils.CreateDirectoryIfNotExists(DirectoryUtils.GetDirectoryPath(filePath));
FileUtils.DeleteFileIfExists(filePath);
var head = new List<string>();
var rows = new List<List<string>>();
var styles = ColumnsManager.GetContentListStyles(await _databaseManager.TableStyleRepository.GetContentStylesAsync(site, channel));
foreach (var style in styles)
{
if (displayAttributes.Contains(style.AttributeName))
{
head.Add(style.DisplayName);
}
}
if (contentIdList == null)
{
contentIdList = await _databaseManager.ContentRepository.GetContentIdsAsync(site, channel, isPeriods,
startDate, endDate, checkedState);
}
foreach (var contentId in contentIdList)
{
var contentInfo = await _databaseManager.ContentRepository.GetAsync(site, channel, contentId);
if (contentInfo != null)
{
var row = new List<string>();
foreach (var style in styles)
{
if (displayAttributes.Contains(style.AttributeName))
{
var value = contentInfo.Get<string>(style.AttributeName);
row.Add(StringUtils.StripTags(value));
}
后面还有 188 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
