
C#中如何保存对excel的修改
请问在C#窗体中,当我点击保存按钮的时候,我需要把客户订单信息自动添加到Excel中,并且保存Excel的修改,这应该怎么实现...
请问在C#窗体中,当我点击保存按钮的时候,我需要把客户订单信息自动添加到Excel中,并且保存Excel的修改,这应该怎么实现
展开
2个回答
展开全部
/// <summary>
/// 导出按钮的点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
try
{
excel.SheetsInNewWorkbook = 1;
excel.Workbooks.Add();
//获取第一个工作表
Worksheet wsheet = (Worksheet)excel.ActiveWorkbook.Worksheets[1];
wsheet.Name = "顾客信息表";
//设置excel列名
excel.Cells[1, 1] = "客户姓名";
excel.Cells[1, 2] = "身份证号";
excel.Cells[1, 3] = "入住日期";
excel.Cells[1, 4] = "订金";
excel.Cells[1, 5] = "状态";
excel.Cells[1, 6] = "房间编号";
//获取标题行的单元格 即Range
var TitilRow = excel.Range[excel.Cells[1,1],excel.Cells[1,7]] as Range;
//设置字体加粗
TitilRow.Font.Bold = true;
//设置字体颜色
TitilRow.Font.ColorIndex = 0;
//设置背景颜色
TitilRow.Interior.ColorIndex = 15;
//设置边框样式
TitilRow.Borders.LineStyle = XlLineStyle.xlContinuous;
//设置单元格的宽度
TitilRow.ColumnWidth = 18;
int i, j = 0;
for (i = 0; i < dgvGuestInfo.Rows.Count; i++)
{
//循环将DataGridView的数据放到 Excel 文档中
for (j = 0; j < 6; j++)
{
excel.Cells[i + 2, j + 1] = dgvGuestInfo.Rows[i].Cells[j].Value.ToString();
}
}
////设置出生年月日的格式
//excel.get_Range(excel.Cells[2, 8], excel.Cells[i + 2, 8]).NumberFormat = "yyyy-MM-dd";
//设置身份证号的个格式
var Identity = excel.Range[excel.Cells[2, 2], excel.Cells[i, 2]].NumberFormatLocal = "0";
//获取活动的行和列
var ActiveRowAndColums = excel.Range[excel.Cells[1, 7], excel.Cells[i, 7]] as Range;
//设置活动的行和列居中显示
ActiveRowAndColums.VerticalAlignment = XlVAlign.xlVAlignCenter;
//显示Excel文件内容
excel.Visible = true;
//设置显示的时长
System.Threading.Thread.Sleep(5000);
//设置保存的文件的名称
excel.ActiveWorkbook.SaveAs(Environment.CurrentDirectory + "/顾客信息表.xls", XlFileFormat.xlWorkbookNormal);
}
catch (Exception ex)
{
throw ex;
}
finally
{
//关闭当前活动的WorkBook
excel.ActiveWorkbook.Close();
//退出excel应用程序
excel.Quit();
}
}
类似这样写,应该能行 需要注意的是finally里面的代码!
/// 导出按钮的点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
try
{
excel.SheetsInNewWorkbook = 1;
excel.Workbooks.Add();
//获取第一个工作表
Worksheet wsheet = (Worksheet)excel.ActiveWorkbook.Worksheets[1];
wsheet.Name = "顾客信息表";
//设置excel列名
excel.Cells[1, 1] = "客户姓名";
excel.Cells[1, 2] = "身份证号";
excel.Cells[1, 3] = "入住日期";
excel.Cells[1, 4] = "订金";
excel.Cells[1, 5] = "状态";
excel.Cells[1, 6] = "房间编号";
//获取标题行的单元格 即Range
var TitilRow = excel.Range[excel.Cells[1,1],excel.Cells[1,7]] as Range;
//设置字体加粗
TitilRow.Font.Bold = true;
//设置字体颜色
TitilRow.Font.ColorIndex = 0;
//设置背景颜色
TitilRow.Interior.ColorIndex = 15;
//设置边框样式
TitilRow.Borders.LineStyle = XlLineStyle.xlContinuous;
//设置单元格的宽度
TitilRow.ColumnWidth = 18;
int i, j = 0;
for (i = 0; i < dgvGuestInfo.Rows.Count; i++)
{
//循环将DataGridView的数据放到 Excel 文档中
for (j = 0; j < 6; j++)
{
excel.Cells[i + 2, j + 1] = dgvGuestInfo.Rows[i].Cells[j].Value.ToString();
}
}
////设置出生年月日的格式
//excel.get_Range(excel.Cells[2, 8], excel.Cells[i + 2, 8]).NumberFormat = "yyyy-MM-dd";
//设置身份证号的个格式
var Identity = excel.Range[excel.Cells[2, 2], excel.Cells[i, 2]].NumberFormatLocal = "0";
//获取活动的行和列
var ActiveRowAndColums = excel.Range[excel.Cells[1, 7], excel.Cells[i, 7]] as Range;
//设置活动的行和列居中显示
ActiveRowAndColums.VerticalAlignment = XlVAlign.xlVAlignCenter;
//显示Excel文件内容
excel.Visible = true;
//设置显示的时长
System.Threading.Thread.Sleep(5000);
//设置保存的文件的名称
excel.ActiveWorkbook.SaveAs(Environment.CurrentDirectory + "/顾客信息表.xls", XlFileFormat.xlWorkbookNormal);
}
catch (Exception ex)
{
throw ex;
}
finally
{
//关闭当前活动的WorkBook
excel.ActiveWorkbook.Close();
//退出excel应用程序
excel.Quit();
}
}
类似这样写,应该能行 需要注意的是finally里面的代码!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
追加不得了...你不会操作Excel么...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |