logic/parser/TableExcelWriter.cs
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
namespace tablegen2.logic
{
public static class TableExcelWriter
{
public static void genExcel(TableExcelData data, string filePath)
{
Util.MakesureFolderExist(Path.GetDirectoryName(filePath));
var ext = Path.GetExtension(filePath).ToLower();
if (ext != ".xls" && ext != ".xlsx")
throw new Exception(string.Format("无法识别的文件扩展名 {0}", ext));
var workbook = ext == ".xls" ? (IWorkbook)new HSSFWorkbook() : (IWorkbook)new XSSFWorkbook();
var sheet1 = workbook.CreateSheet(AppData.Config.SheetNameForField);
var sheet2 = workbook.CreateSheet(AppData.Config.SheetNameForData);
//创建新字体
var font = workbook.CreateFont();
font.IsBold = true;
//创建新样式
var style = workbook.CreateCellStyle();
style.SetFont(font);
style.FillPattern = FillPattern.SolidForeground;
style.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Grey25Percent.Index;
//默认样式
for (short i = 0; i < workbook.NumCellStyles; i++)
{
workbook.GetCellStyleAt(i).VerticalAlignment = VerticalAlignment.Center;
}
_writeToDefSheet(sheet1, data.Headers);
_writeToDataSheet(sheet2, data);
var tmppath = Path.Combine(Path.GetDirectoryName(filePath),
string.Format("{0}.tmp{1}", Path.GetFileNameWithoutExtension(filePath), ext));
using (var fs = File.Open(tmppath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
{
workbook.Write(fs);
}
var content = File.ReadAllBytes(tmppath);
File.Delete(tmppath);
File.WriteAllBytes(filePath, content);
}
private static void _writeToSheet(ISheet sheet, IEnumerable<string> lst)
{
IRow row;
if (sheet.GetRow(0) == null)
row = sheet.CreateRow(0);
else
后面还有 74 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。