C#中如何保存对excel的修改

请问在C#窗体中,当我点击保存按钮的时候,我需要把客户订单信息自动添加到Excel中,并且保存Excel的修改,这应该怎么实现

第1个回答  2013-07-12
/// <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里面的代码!追问

不好意思,是我没说清楚,Excel里面有内容,而我还需要把上面的客户订单信息添加到Excel里面,然后点击保存的时候,客户订单信息保存进数据库,Excel内容也保存

本回答被提问者和网友采纳
第2个回答  2013-07-12
追加不得了...你不会操作Excel么...

C#中如何保存对excel的修改
\/\/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...

c#导入excel文件到程序页面中,如何保持边框设置?
可以吧第一列第一行的单元格的水平对齐方式,保存到变量strHa中,这样以后你在导出的时候就可以把这个strHa的对齐方式再赋给相应的单元格就成:myWorksheet.get_Range(myExcel.Cells[1, 1],Cells[1, 1])).HorizontalAlignment = strHa;说实话,如果待导入的EXCEL表格比较简单的话,还好说。如果稍微...

c# 如何修改 excel 某一单元格的值?
回答:"load完excel后直接写就可以 sheet.Cells[X,Y].Value = 需要修改的值 sheet设为当前活动的工作簿"

C#如何打开一个Excel表并对其进行修改
string excelName= ExcelFileUrl();\/\/返回Excel的路径 string fileName = AppDomain.CurrentDomain.BaseDirectory.ToString() + excelName;\/\/保存Excle的文件路径 object missing = Missing.Value;Microsoft.Office.Interop.Excel.Application appExcel = null;\/\/实例Excel类 try { appExcel = new Microsoft...

c#导出Excel表格,如何保持数据类型不变
如果导出的数据是固定在某列的,可以先设置把空的excel文件相应的行设成想要的格式,然后每次导的时候,复制个副本来操作,只管导出各列就好了,绕过格式问题。

c#如何实现对表格(excel)的增删改查?
一、首先处理好数据库连接字串 Excel2000-2003: string connStr = "Microsoft.Jet.Oledb.4.0;Data Source='c:\\test.xls';Extended Properties=\\"Excel 8.0;HDR=Yes;IMEX=1\\";";Excel2007: string connStr = "Microsoft.Ace.OleDb.12.0;Data Source='c:\\test.xlsx';Extended Properties=\\"...

C#中关于对excl操作
方案1:引用Excel相应的COM组件,通过COM接口,创建Excel应用程序实例,在代码中调用相应的接口方法操作Excel。 大概是Microsoft.Office.Interop.Excel 方案2:把Excel当数据库用,使用Oledb的Excel驱动连接到Excel,使用查询语句对内容进行操作。

C#利用npoi在已有多个Sheet的Excel中的其中一个Sheet插入或保存数据
CreateCell(0).SetCellValue("测试");\/\/在第一列位置创建一列,并赋值“测试”。using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))workbook.Write(fs);以上示例,读取xls文件,然后在“菜鸟”表第一行第一列填写文本"测试"并保存更新。

C#如何让EXCEL自动以当前时间为文件名保存
保存前调用这个方法得到文件名 private string RandomName(string extendName){ string filename;filename = DateTime.Now.ToFileTime().ToString();filename += "." + extendName;filename = stationName + filename;return filename;} extendName是文件扩展名,你可以改成xls。生成的文件名精确到ms...

C#怎么在一个已经存在的EXCEL里写入数据
_wsh.Cells[3, 2] = person.Name;\/\/3为excel行,2为excel列 _wsh.SaveAs("填写完成后要保存的路径", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);_wb.Close(); wb.Close();...

相似回答