目前想学习一些怎么在excel通过API(或其它方式)可以自动显示快递状态,比如已签收,在途中…

   2026-02-07 00
核心提示:给你一个参考 在这个类中,有两个参数传进来,一个是它的数据源,另一个是整个报表的标题字符串,具体看代码就应该知道了。 using System; using ***.Data; usin
给你一个参考
在这个类中,有两个参数传进来,一个是它的数据源,另一个是整个报表的标题字符串,具体看代码就应该知道了。

using System;
using ***.Data;
using Excel;

namespace LogicLayer
{
///
/// OutputExcel 的摘要说明
///
public class OutputExcel
{
public OutputExcel(DataView dv,string str)
{
//
// TODO: 在此处添加构造函数逻辑
//
Excel.Application excel;
int rowIndex=4;
int colIndex=1;

Excel._Workbook xBk;
Excel._Worksheet xSt;

excel= new Excel.ApplicationClass();;
xBk = excel.Workbooks.Add(true);
xSt = (Excel._Worksheet)xBk.ActiveSheet;

//
//取得标题
//
foreach(DataColumn col in dv.Table.Columns)
{
colIndex++;
excel.Cells4,colIndex = col.ColumnName;
xSt.get_Range(excel.Cells4,colIndex,excel.Cells4,colIndex).HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;//设置标题格式为居中对齐
}

//
//取得表格中的数据
//
foreach(DataRowView row in dv)
{
rowIndex ++;
colIndex = 1;
foreach(DataColumn col in dv.Table.Columns)
{
colIndex ++;
if(col.DataType == System.Type.GetType(“System.DateTime”))
{
excel.CellsrowIndex,colIndex = (Convert.ToDateTime(rowcol.ColumnName.ToString())).ToString(“yyyy-MM-dd”);
xSt.get_Range(excel.CellsrowIndex,colIndex,excel.CellsrowIndex,colIndex).HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;//设置日期型的字段格式为居中对齐
}
else
if(col.DataType == System.Type.GetType(“System.String”))
{
excel.CellsrowIndex,colIndex = ”+rowcol.ColumnName.ToString();
xSt.get_Range(excel.CellsrowIndex,colIndex,excel.CellsrowIndex,colIndex).HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;//设置字符型的字段格式为居中对齐
}
else
{
excel.CellsrowIndex,colIndex = rowcol.ColumnName.ToString();
}
}
}
//
//加载一个合计行
//
int rowSum = rowIndex + 1;
int colSum = 2;
excel.CellsrowSum,2 = “合计”;
xSt.get_Range(excel.CellsrowSum,2,excel.CellsrowSum,2).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
//
//设置选中的部分的颜色
//
xSt.get_Range(excel.CellsrowSum,colSum,excel.CellsrowSum,colIndex).Select();
xSt.get_Range(excel.CellsrowSum,colSum,excel.CellsrowSum,colIndex).Interior.ColorIndex = 19;//设置为浅黄色,共计有56种
//
//取得整个报表的标题
//
excel.Cells2,2 = str;
//
//设置整个报表的标题格式
//
xSt.get_Range(excel.Cells2,2,excel.Cells2,2).Font.Bold = true;
xSt.get_Range(excel.Cells2,2,excel.Cells2,2).Font.Size = 22;
//
//设置报表表格为最适应宽度
//
xSt.get_Range(excel.Cells4,2,excel.CellsrowSum,colIndex).Select();
xSt.get_Range(excel.Cells4,2,excel.CellsrowSum,colIndex).Columns.AutoFit();
//
//设置整个报表的标题为跨列居中
//
xSt.get_Range(excel.Cells2,2,excel.Cells2,colIndex).Select();
xSt.get_Range(excel.Cells2,2,excel.Cells2,colIndex).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenterAcrossSelection;
//
//绘制边框
//
xSt.get_Range(excel.Cells4,2,excel.CellsrowSum,colIndex).Borders.LineStyle = 1;
xSt.get_Range(excel.Cells4,2,excel.CellsrowSum,2).BordersExcel.XlBordersIndex.xlEdgeLeft.Weight = Excel.XlBorderWeight.xlThick;//设置左边线加粗
xSt.get_Range(excel.Cells4,2,excel.Cells4,colIndex).BordersExcel.XlBordersIndex.xlEdgeTop.Weight = Excel.XlBorderWeight.xlThick;//设置上边线加粗
xSt.get_Range(excel.Cells4,colIndex,excel.CellsrowSum,colIndex).BordersExcel.XlBordersIndex.xlEdgeRight.Weight = Excel.XlBorderWeight.xlThick;//设置右边线加粗
xSt.get_Range(excel.CellsrowSum,2,excel.CellsrowSum,colIndex).BordersExcel.XlBordersIndex.xlEdgeBottom.Weight = Excel.XlBorderWeight.xlThick;//设置下边线加粗
//
//显示效果
//
excel.Visible=true;
}
}
}

 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  RSS订阅  |  今日物流资讯:2026-02-08