110,530
社区成员
发帖
与我相关
我的任务
分享
//按下导出按钮
private void button7_Click(object sender, EventArgs e)
{
print(dataGridView1);
}
public void print(DataGridView dataGridView1)
{
//导出到execl
try
{
//没有数据的话就不往下执行
if (dataGridView1.Rows.Count == 0)
return;
//实例化一个Excel.Application对象
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
//让后台执行设置为不可见
excel.Visible = false;
//不新增加一个工作簿,Workbook是直接保存,不会弹出保存对话框,而
excel.Application.Workbooks.Add(true);
//Workbook wBook = excel.Application.Workbooks.Add(true);
//生成字段名称
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
excel.Cells[1, i + 1] = dataGridView1.Columns[i].HeaderText;
}
//把DataGridView当前页的数据保存在Excel中
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
if (dataGridView1[j, i].ValueType == typeof(string))
{
excel.Cells[i + 2, j + 1] = "'" + dataGridView1[j, i].Value.ToString();
}
else
{
excel.Cells[i + 2, j + 1] = dataGridView1[j, i].Value.ToString();
}
}
}
//设置禁止弹出保存和覆盖的询问提示框
excel.DisplayAlerts = false;
excel.AlertBeforeOverwriting = false;
//保存工作簿
excel.Application.Workbooks.Add(true).Save();
//保存excel文件
excel.Save("F:" + "\\3333333.xls");
//确保Excel进程关闭
excel.Quit();
excel = null;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误提示");
}
}
//保存到Excel
public void SaveDataTableToExcel(System.Data.DataTable excelTable,string filePath)
{
Microsoft.Office.Interop.Excel.Application app =
new Microsoft.Office.Interop.Excel.ApplicationClass();
try
{
//让后台执行设置为不可见
app.Visible = false;
//新增加一个工作簿
Workbook wBook = app.Workbooks.Add(true);
//如果要打开已有的工作簿,则使用下面的注释语句
// Workbook wBook = app.Workbooks.Open(@"C:\YourPath\YourWorkbook.xls",
// missing, missing, missing, missing, missing, missing, missing,
// missing, missing, missing, missing, missing,missing, missing);
//取得一个工作表
//如果打开了已有的工作簿,也可以这样获取工作表Worksheet wSheet = wBook.ActiveSheet as Worksheet
Worksheet wSheet = wBook.Worksheets[1] as Worksheet;
if (excelTable.Rows.Count > 0)
{
int row = 0;
row = excelTable.Rows.Count;
int col = excelTable.Columns.Count;
allsize = row;
for (int i = 0; i < row; i++)
{
//succeesize++;
//prograsssize++;
for (int j = 0; j < col; j++)
{
string str = excelTable.Rows[i][j].ToString();
wSheet.Cells[i + 1, j + 1] = str;
}
//SetMessageText();
}
}
int size = excelTable.Columns.Count;
for (int i = 0; i < size; i++)
{
wSheet.Cells[1, 1 + i] = excelTable.Columns[i].ColumnName;
}
//设置禁止弹出保存和覆盖的询问提示框
app.DisplayAlerts = false;
app.AlertBeforeOverwriting = false;
//保存工作簿
wBook.Save();
//保存excel文件
app.Save(filePath + "\\导出一览表.xls");
}
catch(Exception err)
{
MessageBox.Show("导入Excel出错!错误原因:"+ err.Message, "NaviDMS 2.2",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
finally
{
//确保Excel进程关闭
app.Quit();
app = null;
}
//SetCancelUse();
}
//保存到Excel
public void SaveDataTableToExcel(System.Data.DataTable excelTable,string filePath)
{
Microsoft.Office.Interop.Excel.Application app =
new Microsoft.Office.Interop.Excel.ApplicationClass();
try
{
//让后台执行设置为不可见
app.Visible = false;
//新增加一个工作簿
Workbook wBook = app.Workbooks.Add(true);
//如果要打开已有的工作簿,则使用下面的注释语句
// Workbook wBook = app.Workbooks.Open(@"C:\YourPath\YourWorkbook.xls",
// missing, missing, missing, missing, missing, missing, missing,
// missing, missing, missing, missing, missing,missing, missing);
//取得一个工作表
//如果打开了已有的工作簿,也可以这样获取工作表Worksheet wSheet = wBook.ActiveSheet as Worksheet
Worksheet wSheet = wBook.Worksheets[1] as Worksheet;
if (excelTable.Rows.Count > 0)
{
int row = 0;
row = excelTable.Rows.Count;
int col = excelTable.Columns.Count;
allsize = row;
for (int i = 0; i < row; i++)
{
succeesize++;
prograsssize++;
for (int j = 0; j < col; j++)
{
string str = excelTable.Rows[i][j].ToString();
wSheet.Cells[i + 1, j + 1] = str;
}
SetMessageText();
}
}
int size = excelTable.Columns.Count;
for (int i = 0; i < size; i++)
{
wSheet.Cells[1, 1 + i] = excelTable.Columns[i].ColumnName;
}
//设置禁止弹出保存和覆盖的询问提示框
app.DisplayAlerts = false;
app.AlertBeforeOverwriting = false;
//保存工作簿
wBook.Save();
//保存excel文件
app.Save(filePath + "\\导出一览表.xls");
}
catch(Exception err)
{
MessageBox.Show("导入Excel出错!错误原因:"+ err.Message, "NaviDMS 2.2",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
finally
{
//确保Excel进程关闭
app.Quit();
app = null;
}
SetCancelUse();
}