如何在C#中设置导出Excel表格里的单元格宽高

如何在C#中设置导出Excel表格里的单元格宽高

废话少说吧,直奔主题。
先来看一下还没有设置样式,直接导出数据时的效果图:
在这里插入图片描述
是不是觉得上面的图里的汉字有点靠的太近了?看得不是很顺眼,因为部分的字体被遮住了。
接下来看看设置了宽度和高度的效果图:
来看一下是如何实现这种效果的。
在这里插入图片描述

public ActionResult ExportToExcel(){
     //首先查询出你要导出的数据
     List<BorrowVo> listBorrow = (from tbBorrow in myModels.PW_Borrow
                join tbCommodity in myModels.PW_Commodity on tbBorrow.CommodityID equals tbCommodity.CommodityID
                join tbWarehouse in myModels.PW_Warehouse on tbBorrow.WarehouseID equals tbWarehouse.WarehouseID
                join tbSupplier in myModels.PW_Supplier on tbBorrow.SupplierID equals tbSupplier.SupplierID
                 join tbUser in myModels.PW_User on tbBorrow.UserID equals tbUser.UserID
                 orderby tbBorrow.BorrowID descending
                 select new BorrowVo{
                      BorrowID = tbBorrow.BorrowID,  //借出ID
                      BorrowDate = tbBorrow.BorrowDate,  //业务日期
                      BorrowNum = tbBorrow.BorrowNum,   //单据编号
                      CommodityName = tbCommodity.CommodityName,  //借出商品
                      WarehouseName = tbWarehouse.WarehouseName,  //入库仓库
               SupplierName = tbSupplier.SupplierName,  //供应商名称
               BorrowPlanDate = tbBorrow.BorrowPlanDate,  //预计归还日期
               UserName = tbUser.UserName   //经手人
         }).ToList();
         HSSFWorkbook workBook = new HSSFWorkbook(); //创建工作簿
         //创建工作表
         NPOI.SS.UserModel.ISheet BorrowSheet = workBook.CreateSheet("借入单列表");
         //创建表头行
         NPOI.SS.UserModel.IRow BorrowRow = BorrowSheet.CreateRow(0);
         //设置表头
         BorrowRow.CreateCell(0).SetCellValue("业务日期");
         BorrowRow.CreateCell(1).SetCellValue("单据编号");
         BorrowRow.CreateCell(2).SetCellValue("供应商名称");
         BorrowRow.CreateCell(3).SetCellValue("借入商品");
         BorrowRow.CreateCell(4).SetCellValue("预计归还日期");
         BorrowRow.CreateCell(5).SetCellValue("入库仓库");
         BorrowRow.CreateCell(6).SetCellValue("经手人");
         //为Excel表格添加数据
        for (int i = 0; i < listBorrow.Count(); i++){
           NPOI.SS.UserModel.IRow rowTemp = BorrowSheet.CreateRow(i + 1); //创建行
           //添加数据
           rowTemp.CreateCell(0).SetCellValue(listBorrow[i].BorrowDate);
           rowTemp.CreateCell(1).SetCellValue(listBorrow[i].BorrowNum);
           rowTemp.CreateCell(2).SetCellValue(listBorrow[i].SupplierName);
           rowTemp.CreateCell(3).SetCellValue(listBorrow[i].CommodityName);
           rowTemp.CreateCell(4).SetCellValue(listBorrow[i].BorrowPlanDate);
           rowTemp.CreateCell(5).SetCellValue(listBorrow[i].WarehouseName);
           rowTemp.CreateCell(6).SetCellValue(listBorrow[i].UserName);
        }
            //根据内容动态调整excel单元格宽度
            BorrowSheet.SetColumnWidth(0, 20 * 250);
            BorrowSheet.SetColumnWidth(1, 20 * 250);
            BorrowSheet.SetColumnWidth(2, 20 * 250);
            BorrowSheet.SetColumnWidth(3, 20 * 250);
            BorrowSheet.SetColumnWidth(4, 20 * 250);
            BorrowSheet.SetColumnWidth(5, 20 * 250);
            BorrowSheet.SetColumnWidth(6, 20 * 250);
            //根据内容动态调整excel单元格高度
            IRow currentRow = BorrowSheet.GetRow(BorrowSheet.FirstRowNum);
            ICell currentCell = currentRow.GetCell(BorrowSheet.FirstRowNum);
            int length = Encoding.UTF8.GetBytes(currentCell.ToString()).Length;
            currentRow.HeightInPoints = 20 * (length / 60 + 1);
            //为Excel文件命名
           string fileName = "借入单列表" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-ffff") + ".xls";
            //转化为内存流
            MemoryStream ExcelStream = new MemoryStream();
            //将Excel文件写入内存流
            workBook.Write(ExcelStream); 
            //Seek(0,Seek.begin) 第一个参数表示相对位置,第二个参数表示参照位置
            ExcelStream.Seek(0, SeekOrigin.Begin);
           //MIME文件类型(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型
            return File(ExcelStream, "application/vnd.ms-excel", fileName);
}

注:在做导入功能之前,要把引用一个东西,名为 NPOI.dll,否则无法完成导出的功能

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的示例,演示如何使用 C# 导出表格设置单元格格式: ```csharp using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Excel = Microsoft.Office.Interop.Excel; namespace ExcelExportDemo { class Program { static void Main(string[] args) { // 创建 Excel 应用程序对象 Excel.Application excelApp = new Excel.Application(); // 创建一个新的工作簿 Excel.Workbook workbook = excelApp.Workbooks.Add(); // 创建一个新的工作表 Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Sheets.Add(); // 设置单元格值 worksheet.Range["A1"].Value = "姓名"; worksheet.Range["B1"].Value = "年龄"; worksheet.Range["C1"].Value = "性别"; // 设置单元格格式 worksheet.Range["A1:C1"].Font.Bold = true; worksheet.Range["A1:C1"].HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; // 添加数据 worksheet.Range["A2"].Value = "张三"; worksheet.Range["B2"].Value = 20; worksheet.Range["C2"].Value = "男"; worksheet.Range["A3"].Value = "李四"; worksheet.Range["B3"].Value = 25; worksheet.Range["C3"].Value = "女"; // 自适应列宽 worksheet.Columns.AutoFit(); // 保存工作簿 workbook.SaveAs("demo.xlsx"); // 关闭工作簿 workbook.Close(); // 关闭 Excel 应用程序 excelApp.Quit(); } } } ``` 该示例,我们使用 Microsoft Excel 的 COM 接口,创建了一个新的 Excel 应用程序对象,并使用它来创建一个新的工作簿和工作表。然后,我们设置单元格值和格式,并在最后保存工作簿并关闭 Excel 应用程序对象。注意:在使用 COM 接口时,需要确保已经安装了 Microsoft Excel 应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值