物流問答
現在想學習一些怎樣在excel經過API(或其它方法)能夠主動顯現快遞狀況,比方已簽收,在途中…
在這個類中,有兩個參數傳進來,一個是它的數據源,另一個是整個報表的標題字符串,詳細看代碼就應該知道了。
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;
}
}
}
http://m.jintingqj.cn/wuliuwenda/98154.html 現在想學習一些怎樣在excel經過API(或其它方法)能夠主動顯現快遞狀況,比方已簽收,在途中…