急!!!!!!C#导出Excel弹出对话框

dyz7910980 2013-01-06 01:31:34
我现在导出之后,直接就是默认到D盘的,我现在想做成动态的,可以选择路径。
private void MenuItem_Click(object sender, RoutedEventArgs e)
{

System.Data.DataTable datatable = new System.Data.DataTable();
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
try
{
//lz 路径选择

excelApp.Visible = false;
Workbook excelWB = excelApp.Workbooks.Add(System.Type.Missing);
Worksheet excelWS = (Worksheet)excelWB.Worksheets[1];
Range celulas = null;
celulas = excelWS.get_Range("A1", System.Type.Missing);
excelWS.Cells[1, 1] = "";
excelWS.Cells[1, 2] = "控制柜名称";
excelWS.Cells[1, 3] = "控制柜分类";
excelWS.Cells[1, 4] = "时间";
excelWS.Cells[1, 6] = "工作模式";
excelWS.Cells[1, 8] = "报警状态";
excelWS.Cells[1, 10] = "输入电压";
excelWS.Cells[1, 11] = "输出电压";
excelWS.Cells[1, 12] = "输出电流";
excelWS.Cells[1, 13] = "一路";
excelWS.Cells[1, 14] = "二路";

for (int i = 0; i < dsResult.Tables[0].Rows.Count; i++)
{
for (int j = 0; j < dsResult.Tables[0].Columns.Count; j++)
{
celulas.get_Offset(i + 1, j).Cells.Value2 = dsResult.Tables[0].Rows[i][j].ToString();
}
}

excelApp.ActiveWorkbook.RefreshAll();
excelApp.Workbooks.Application.ActiveWorkbook.RefreshAll();

excelWB.SaveAs(@"d:\历史运行数据记录.xls", XlSaveAction.xlSaveChanges, false, false, XlSaveAsAccessMode.xlNoChange);
excelWB.Close(false, null, null);
}
catch (Exception ex)
{
MessageBox.Show("导出失败:" + ex.Message);

}

excelApp.Quit();
MessageBox.Show("导出成功!");
btnExcel.DataContext = "";
HistoryWorkingDataGrid.DataContext = null;
}

求各位大神帮忙改改。。万分感谢啊
...全文
146 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
-过客- 2013-01-06
  • 打赏
  • 举报
回复
excelWB.SaveAs(@"d:\历史运行数据记录.xls", XlSaveAction.xlSaveChanges, false, false, XlSaveAsAccessMode.xlNoChange);
替换为
string fileName = string.Empty;
SaveFileDialog sfDialog = new SaveFileDialog();
sfDialog.Filter = "Excel 97-2003工作簿(*.xls)|*.xls|Excel 工作簿(*.xlsx)|*.xlsx";
if (sfDialog.ShowDialog() == DialogResult.OK)
{
    fileName = sfDialog.FileName;
    excelWB.SaveAs(fileName, XlSaveAction.xlSaveChanges, false, false, XlSaveAsAccessMode.xlNoChange);            
}
老猫五号 2013-01-06
  • 打赏
  • 举报
回复
用一个对话框,接受用户选择的路径,然后将路径作为参数传入此函数,修改:excelWB.SaveAs(strPath, XlSaveAction.xlSaveChanges, false, false, XlSaveAsAccessMode.xlNoChange); 即可

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧