C#实现excel 文件导出
实现方式:可以采用模板文件导出也可以采用代码生成文件, 将文件转化为字节流,然后用File()方法输出即可。
Controller
-
public ActionResult DownloadRiskTipExcel(string nodeId, int level, string riskSourceName, string riskStatusValue)
-
{
-
-
var data = riskTipsService.DownloadRiskTipExcel(nodeId, level, riskSourceName, riskStatusValue);
-
var name = $"风险提示-导出-" DateTime.Now.ToString("yyyyMMddhhmm") ".xlsx";
-
return File(data, "application/octet-stream", name);
-
}
IService
byte[] DownloadRiskTipExcel(string nodeId, int level, string riskSourceName, string riskStatusValue);
Service
-
public byte[] DownloadRiskTipExcel(string nodeId, int level, string riskSourceName, string riskStatusValue)
-
{
-
var dataList = GetRiskPointPageList(nodeId, level, riskSourceName, riskStatusValue);
-
var host = GetService<IHostingEnvironment>();
-
-
XSSFWorkbook workbook;
-
string templateFilePath = templateFilePath = Path.GetFullPath(host.WebRootPath "/Template/RiskTipTemplate.xlsx");
-
-
byte[] datas;
-
-
using (var fs = System.IO.File.OpenRead(templateFilePath))
-
{
-
-
workbook = new XSSFWorkbook(fs);
-
int sheetIndex = 0;
-
-
ICellStyle cellStyle = workbook.CreateCellStyle();
-
cellStyle.WrapText = true;
-
cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;//粗线
-
cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;//粗线
-
cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;//粗线
-
cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;//粗线
-
cellStyle.Alignment = HorizontalAlignment.Center;
-
cellStyle.VerticalAlignment = VerticalAlignment.Center;
-
-
ICellStyle borderCellStyle = workbook.CreateCellStyle();
-
borderCellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;//粗线
-
borderCellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;//粗线
-
borderCellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;//粗线
-
borderCellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;//粗线
-
-
IFont font = workbook.CreateFont();
-
font.Boldweight = (short)FontBoldWeight.Bold;
-
borderCellStyle.SetFont(font);
-
borderCellStyle.Alignment = HorizontalAlignment.Center;
-
borderCellStyle.VerticalAlignment = VerticalAlignment.Center;
-
-
XSSFSheet sheet = workbook.GetSheetAt(0) as XSSFSheet;
-
int rowIndex =1;
-
foreach (var item in dataList)
-
{
-
IRow dataRow = sheet.GetRow(rowIndex);
-
if (dataRow == null)
-
{
-
dataRow = sheet.CreateRow(rowIndex);
-
}
-
cellStyle.WrapText = false;
-
SetCellValue(workbook, dataRow, cellStyle, 0, item.SegName);
-
SetCellValue(workbook, dataRow, cellStyle, 1, item.SiteName);
-
SetCellValue(workbook, dataRow, cellStyle, 2, item.RiskPointName);
-
SetCellValue(workbook, dataRow, cellStyle, 3, item.RiskDesignLevelDesc);
-
SetCellValue(workbook, dataRow, cellStyle, 4, item.ConstructionLevelDesc);
-
SetCellValue(workbook, dataRow, cellStyle, 5, item.RiskTypeName);
-
SetCellValue(workbook, dataRow, cellStyle, 6, item.RiskName);
-
SetCellValue(workbook, dataRow, cellStyle, 7, item.RiskLevelDesc);
-
SetCellValue(workbook, dataRow, cellStyle, 8, item.ProcessingStatusDesc);
-
rowIndex ;
-
}
-
-
-
workbook.SetActiveSheet(0);
-
}
-
using (var ms = new MemoryStream())
-
{
-
workbook.Write(ms);
-
datas = ms.ToArray();
-
}
-
return datas;
-
}
-
-
/// <summary>
-
/// 单元格赋值
-
/// </summary>
-
private void SetCellValue(XSSFWorkbook workbook, IRow row, ICellStyle cellStyle, int columIndex, string value)
-
{
-
var cell = row.CreateCell(columIndex);
-
-
cell.CellStyle = cellStyle;
-
-
cell.SetCellValue(value);
-
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfkcha
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13