C#--对上传的Excel文档的处理
注:ToString对数值字符串的处理
string nID=555;
nID.ToString("00000000"); ---00000555
var oFile = Request.Form.Files["file"];
Workbook workBook = new Workbook(path);
Worksheet workSheet = workBook.Worksheets["Sheet1"]; //判断是否能找到Sheet1
Cells cell = workSheet.Cells;
string str = cell.GetRow(0)[i].StringValue; //i为column索引 从0开始 获取单元格的内容
创建一个Sheet表(并将excel表保存到Path路径)
//Workbook workbook = new Workbook(); //工作簿 //Name :就是sheet表的名字(string) //string[] ColumnNames = new string[] { "Column1", "Column2", "Column3", "column4", "column5" }; (列名)首行的名字(主要记录有多少列,方便循环插入数据)
//List<string[]> ArrPrint = new List<string[]>(); ArrPrint里面包含所有的报表信息包括列头
//ArrPrint.Add(ColumnNames);
//string[] arr = new string[] {data1,data2,data3,data4,data5 } ArrPrint.Add(arr);将要所有要记录的数据全部存进去
//调用CreateSheet(workbook, 0, "Fapiao", ColumnNames, ArrPrint);
//workbook.Save(Path);将excel表保存到这个路径
internal static void CreateSheet(Workbook workbook, int num, string Name, string[] ColumnNames, List<string[]> arrayList) { workbook.Worksheets.Add(Name); Worksheet sheet = workbook.Worksheets[num]; //工作表 Cells cells = sheet.Cells;//单元格 Style style = workbook.CreateStyle();//新增样式 style.Font.Name = "宋体";//文字字体 style.Font.Size = 12; //文字大小 style.Font.IsBold = true;//粗体 style.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin; style.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin; style.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin; style.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; style.HorizontalAlignment = TextAlignmentType.Center; //单元格内容的水平对齐方式文字居中
//遍历行和列 可获取单元格并填充数据
//因为arrarlist中包含表头所坐标和单元格是对应的
if (arrayList.Count > 1) { for (int k = 0; k < arrayList.Count; k++) { for (int i = 0; i < ColumnNames.Length; i++) { cells[k, i].PutValue(arrayList[k][i]); cells[k, i].SetStyle(style); } } } sheet.AutoFitColumns(); sheet.AutoFitRows(); }
根据Path路径下载excel表
public IActionResult ExportWorkList(string filePath) { //打开一个现有文件供读取 var stream = System.IO.File.OpenRead(filePath); //返回指定路径字符串的扩展名(包括句点".")。 .xlsx string fileExt = System.IO.Path.GetExtension(filePath); var provider = new FileExtensionContentTypeProvider(); //文件扩展名和内容类型的交叉引用表 var memi = provider.Mappings[fileExt]; //三个参数 1.包含文件内容的文件流 2.内容类型 3.filedownloadName
//GetFileName 返回路径中最后一个目录分隔符'\'之后的字符。 list.xlsx
return File(stream, memi, Path.GetFileName(filePath)); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现