先说一下思路,点击"导入"按钮时,弹出对话框,以时间为默认的名字保存,但是要保存2次,产生2个文件,不知道是怎么回事!以下是代码:(代码可用,调试通过)
private void btnExcelOut_Click(object sender, System.EventArgs e)
{
int intCount = this.dtExcel.Rows.Count;
if( intCount == 0 )
{
//没有记录
MessageBox.Show("没有记录!");
} SaveFileDialog dlgSave = new SaveFileDialog();
dlgSave.Filter= "All files (*.*)|*.*";
dlgSave.DefaultExt= ".xls";
dlgSave.FileName= DateTime.Today.ToString()+ ".xls";
if(dlgSave.ShowDialog() == DialogResult.OK)
{
//导出数据

this.CreateExcel(this.dtExcel,dlgSave.FileName);
}
}public void CreateExcel(System.Data.DataTable dtName,string fileName)
{
try
{
Excel.Application excelKccx = new Excel.Application();//创建excel对象
excelKccx.Workbooks.Add(true);//创建excel工作薄
int row = 2;
//把数据表的各个信息输入到excel表中
for(int i = 0; i < dtName.Columns.Count; i ++)//取字段名
{
excelKccx.Cells[1,i + 1] = dtName.Columns[i].ColumnName.ToString();
}
for(int i = 0; i < dtName.Rows.Count; i ++ )//取记录值
{
for(int j = 0; j < dtName.Columns.Count; j ++)
{
excelKccx.Cells[row,j + 1] = dtName.Rows[i][j].ToString();
}
row ++;
}
excelKccx.Save(fileName);
excelKccx.Visible = true;//使excel可见*/
}
catch
{
}
}
private void btnExcelOut_Click(object sender, System.EventArgs e)
{
int intCount = this.dtExcel.Rows.Count;
if( intCount == 0 )
{
//没有记录
MessageBox.Show("没有记录!");
} SaveFileDialog dlgSave = new SaveFileDialog();
dlgSave.Filter= "All files (*.*)|*.*";
dlgSave.DefaultExt= ".xls";
dlgSave.FileName= DateTime.Today.ToString()+ ".xls";
if(dlgSave.ShowDialog() == DialogResult.OK)
{
//导出数据

this.CreateExcel(this.dtExcel,dlgSave.FileName);
}
}public void CreateExcel(System.Data.DataTable dtName,string fileName)
{
try
{
Excel.Application excelKccx = new Excel.Application();//创建excel对象
excelKccx.Workbooks.Add(true);//创建excel工作薄
int row = 2;
//把数据表的各个信息输入到excel表中
for(int i = 0; i < dtName.Columns.Count; i ++)//取字段名
{
excelKccx.Cells[1,i + 1] = dtName.Columns[i].ColumnName.ToString();
}
for(int i = 0; i < dtName.Rows.Count; i ++ )//取记录值
{
for(int j = 0; j < dtName.Columns.Count; j ++)
{
excelKccx.Cells[row,j + 1] = dtName.Rows[i][j].ToString();
}
row ++;
}
excelKccx.Save(fileName);
excelKccx.Visible = true;//使excel可见*/
}
catch
{
}
}
另外datatable到excel的绑定,有个简单的数据绑定,跟datagrid的绑定差不多,记不清了,好像是个value2啥的
if(dlgSave.ShowDialog() == DialogResult.OK) 这里一共2次
btnExcelOut_Click里面直接调CreateExcel就可以了,不用再New个保存对话框了
生成HTML改后缀为xls就可以了。
调用这句话后,它就自动给你保存了,
excelKccx.SaveAs(你想要的文件名);