logic/parser/TableExcelReader.cs
(开头部分) 14KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System.IO;
using NPOI.XSSF.UserModel;
using System.Text.RegularExpressions;
using NPOI.SS.Formula.Functions;
using System.Text;
namespace tablegen2.logic
{
public static class TableExcelReader
{
public static TableExcelData loadFromExcel(string filePath)
{
if (!File.Exists(filePath))
throw new Exception(string.Format("{0} 文件不存在!", filePath));
var ext = Path.GetExtension(filePath).ToLower();
if (ext != ".xls" && ext != ".xlsx")
throw new Exception(string.Format("无法识别的文件扩展名 {0}", ext));
var headers = new List<TableExcelHeader>();
var rows = new List<TableExcelRow>();
var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
var workbook = ext == ".xls" ? (IWorkbook)new HSSFWorkbook(fs) : (IWorkbook)new XSSFWorkbook(fs);
fs.Close();
_readDataFromWorkbook(workbook, headers, rows);
return new TableExcelData(headers, rows);
}
private static void _readDataFromWorkbook(IWorkbook wb, List<TableExcelHeader> headers, List<TableExcelRow> rows)
{
var defSheetName = AppData.Config.SheetNameForField;
var dataSheetName = AppData.Config.SheetNameForData;
var sheet1 = wb.GetSheet(defSheetName);
if (sheet1 == null)
throw new Exception(string.Format("'{0}'工作簿不存在", defSheetName));
var sheet2 = wb.GetSheet(dataSheetName);
if (sheet2 == null)
throw new Exception(string.Format("'{0}'工作簿不存在", dataSheetName));
//加载字段
_readHeadersFromDefSheet(sheet1, headers);
//var h1 = headers.Find(a => a.FieldName == "ID");
//if (h1 == null)
// throw new Exception(string.Format("'{0}'工作簿中不存在Id字段!", defSheetName));
// var h2 = headers.Find(a => a.FieldName == "KeyName");
// if (h2 == null)
// throw new Exception(string.Format("'{0}'工作簿中不存在KeyName字段!", defSheetName));
后面还有 318 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。