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)); }

 

posted @ 2022-02-23 11:35  派大没有星  阅读(234)  评论(0编辑  收藏  举报