QiFeng.ZWY.Utility/Files/CreateExcelFile.cs
(开头部分) 17KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
//#define INCLUDE_WEB_FUNCTIONS
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Reflection;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
namespace QiFeng.LMSD.Utility.Files
{
//
// November 2013
// http://www.mikesknowledgebase.com
//
// Note: if you plan to use this in an ASP.Net application, remember to add a reference to "System.Web", and to uncomment
// the "INCLUDE_WEB_FUNCTIONS" definition at the top of this file.
//
// Release history
// - Nov 2013:
// Changed "CreateExcelDocument(DataTable dt, string xlsxFilePath)" to remove the DataTable from the DataSet after creating the Excel file.
// You can now create an Excel file via a Stream (making it more ASP.Net friendly)
// - Jan 2013: Fix: Couldn't open .xlsx files using OLEDB (was missing "WorkbookStylesPart" part)
// - Nov 2012:
// List<>s with Nullable columns weren't be handled properly.
// If a value in a numeric column doesn't have any data, don't write anything to the Excel file (previously, it'd write a '0')
// - Jul 2012: Fix: Some worksheets weren't exporting their numeric data properly, causing "Excel found unreadable content in '___.xslx'" errors.
// - Mar 2012: Fixed issue, where Microsoft.ACE.OLEDB.12.0 wasn't able to connect to the Excel files created using this class.
//
public class CreateExcelFile
{
public static bool CreateExcelDocument<T>(List<T> list, string xlsxFilePath)
{
DataSet ds = new DataSet();
ds.Tables.Add(ListToDataTable(list));
return CreateExcelDocument(ds, xlsxFilePath);
}
public static bool CreateExcelDocumentUseDescription<T>(List<T> list, string xlsxFilePath)
{
DataSet ds = new DataSet();
ds.Tables.Add(ListToDataTableUseDescription(list));
return CreateExcelDocument(ds, xlsxFilePath);
}
#region HELPER_FUNCTIONS
public static DataTable ListToDataTableUseDescription<T>(List<T> list)
{
DataTable dt = new DataTable();
foreach (PropertyInfo info in typeof(T).GetProperties())
{
dt.Columns.Add(new DataColumn(info.Name, GetNullableType(info.PropertyType)));
}
后面还有 351 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。