日期:2014-05-18 浏览次数:20968 次
public static void OutputExceltemp(DataView dv,string str,EmicroWin.EmiList list,bool isTotal)
{
try
{
OutputExceltemp(dv,str,list.TheListView,isTotal);
}
catch
{
MessageBox.Show("请确保安装Office软件,否则不能导出Excel!");
return;
}
}
public static void OutputExceltemp(DataView dv,string str,EmicroWin.EmiListView listview,bool isTotal)
{
ArrayList cs=new ArrayList();
foreach(EmicroWin.EmiColumnHeader header in listview.TheColumns)
{
string field=header.DataField;
if(field==null||field=="")continue;
dv.Table.Columns[field].Caption=header.Text;
cs.Add(field);
}
OutputExceltemp(dv,str,(string[])cs.ToArray(typeof(string)),isTotal);
}
public static void OutputExceltemp(DataView dv,string str,bool isTotal)
{
ArrayList cs=new ArrayList();
foreach(DataColumn c in dv.Table.Columns)
{
cs.Add(c.ColumnName);
}
OutputExceltemp(dv,str,(string[])cs.ToArray(typeof(string)),isTotal);
}
public static void OutputExceltemp(DataView dv,string str,string columns,bool isTotal)
{
OutputExceltemp(dv,str,columns.Split(",".ToCharArray()),isTotal);
}
//比较正规的导出
public static void OutputExceltemp(DataView dv,string str,string[] columns,bool isTotal)
{
//
// TODO: 在此处添加构造函数逻辑
//
Excel.Application excel;
int rowIndex=4;
int colIndex=0;
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)
foreach(string columnname in columns)
{
DataColumn col=dv.Table.Columns[columnname];
colIndex++;
excel.Cells[4,colIndex] = col.Caption;
xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[4,colIndex]).HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;//设置标题格式为居中对齐
}
decimal[] sums=new decimal[dv.Table.Columns.Count];
//
//取得表格中的数据
//
foreach(DataRowView row in dv)
{
rowIndex ++;
colIndex = 0;
foreach(string columnname in columns)
{
DataColumn col=dv.Table.Columns[columnname];
colIndex++;
if(col.DataType == System.Type.GetType("System.DateTime"))
{
excel.Cells[rowIndex,colIndex] = (Convert.ToDateTime(row[col.ColumnName].ToString())).ToString("yyyy-MM-dd");
xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[rowIndex,colIndex]).HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;//设置日期型的字段格式为居中对齐
}
else if(col.DataType == System.Type.GetType("System.String"))
{
excel.Cells[rowIndex,colIndex] = "'"+row[col.ColumnName].ToString();
xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[rowIndex,colIndex]).HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;//设置字符型的字段格式为居中对齐
}
else