//添加引用
using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;
方法一:将识别结果写入到Excel表格中(根据指定模版写入,并将其以当前保存时间命名另存)
/******************** WriteValuetoExcel added by cxj 2015.8.10 **************/
//1.创建一个Excel 应用程序
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); //app = null ,则代表服务器上“服务器上缺少Excel组件,需要安装Office软件”;
//设置app属性,及其进行如下操作
app.Visible = false;
app.UserControl = true;
Microsoft.Office.Interop.Excel.Workbooks workbooks = app.Workbooks;
Microsoft.Office.Interop.Excel._Workbook workbook = workbooks.Add(@"E:\PassData\Template.xlsx"); //加载模板
Microsoft.Office.Interop.Excel.Sheets sheets = workbook.Sheets;
Microsoft.Office.Interop.Excel._Worksheet worksheet = (Microsoft.Office.Interop.Excel._Worksheet)sheets.get_Item(1); //第一个工作薄。
if (worksheet == null)
return; //工作薄中没有工作表.
//2.根据获得的数据,进行数据的插入(到Excel模板中)
int row_ = 4; //Excel模板上表头和标题行占了3行,根据实际模板需要修改;
worksheet.Cells[row_, 10] = total.ToString(); //J4 车辆数
worksheet.Cells[row_, 13] = invalid.ToString(); //M4 无效
worksheet.Cells[row_, 14] = wrongCH.ToString(); //N4 汉字错
worksheet.Cells[row_, 15] = wrongEN.ToString(); //O4 字符错
worksheet.Cells[row_, 16] = wrongNU.ToString(); //P4 数字错
worksheet.Cells[row_, 17] = wrongCL.ToString(); //Q4 不识别
worksheet.Cells[row_, 20] = wrong.ToString(); //T4 错误
worksheet.Cells[row_, 21] = right.ToString(); //U4 正确
//3.对已导出好的Excel报表进行保存到指定路径下,以便进行查看。
//Missing 在System.Reflection命名空间下。
string savaPath = @"E:\PassData\" + DateTime.Now.ToString("yyyy_MM_dd_HHmmss") + ".xlsx";
workbook.SaveAs(savaPath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
MessageBox.Show(summary, "提示", MessageBoxButtons.OK);
//4.关闭Excel对象
workbook.Close(Missing.Value, Missing.Value, Missing.Value);
app.Quit();
//**********************************************************/
方法二:将识别结果写入到Excel表格中(在指定模版上直接写入)
//1.创建Applicaton对象
Excel.Application xApp = new Excel.Application();
xApp.Visible = true;
//2.得到workbook对象,可以用两种方式之一:下面是打开已有的文件
//Excel.Workbook xBook = xApp.Workbooks.Open(@"E:\5_调试软件\ThinkCamWorkstation\PassData\192.168.116.248\2015-08-06\18\result.xlsx",
Excel.Workbook xBook = xApp.Workbooks.Open(path + "\\result.xlsx",
Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value);
//3.指定要操作的Sheet
Excel.Worksheet xSheet = (Excel.Worksheet)xBook.Sheets[1];
//4.写入数据
Excel.Range carAmount = xSheet.get_Range("J4", Missing.Value);
carAmount.Value2 = total;
carAmount.Interior.ColorIndex = 3; //设备Range的背景色
Excel.Range invalid_license_plate = xSheet.get_Range("M4", Missing.Value);
invalid_license_plate.Value2 = invalid;
invalid_license_plate.Interior.ColorIndex = 3; //设备Range的背景色
Excel.Range chinese_character_wrong = xSheet.get_Range("N4", Missing.Value);
chinese_character_wrong.Value2 = wrongCH;
chinese_character_wrong.Interior.ColorIndex = 3; //设备Range的背景色
Excel.Range letter_wrong = xSheet.get_Range("O4", Missing.Value);
letter_wrong.Value2 = wrongEN;
letter_wrong.Interior.ColorIndex = 3; //设备Range的背景色
Excel.Range number_wrong = xSheet.get_Range("P4", Missing.Value);
number_wrong.Value2 = wrongNU;
number_wrong.Interior.ColorIndex = 3; //设备Range的背景色
Excel.Range recognition_wrong = xSheet.get_Range("Q4", Missing.Value);
recognition_wrong.Value2 = wrongCL;
recognition_wrong.Interior.ColorIndex = 3; //设备Range的背景色
Excel.Range wrong_amount = xSheet.get_Range("T4", Missing.Value);
wrong_amount.Value2 = wrong;
wrong_amount.Interior.ColorIndex = 3; //设备Range的背景色
Excel.Range right_amount = xSheet.get_Range("U4", Missing.Value);
right_amount.Value2 = right;
right_amount.Interior.ColorIndex = 3; //设备Range的背景色
//5.保存保存WorkBook
xBook.Save();
//6.从内存中关闭Excel对象
xSheet = null;
xBook = null;
xApp.Quit(); //这一句非常重要,否则Excel对象不能从内存中退出
xApp = null;
MessageBox.Show(summary, "提示", MessageBoxButtons.OK);
这篇博客介绍了如何使用C#通过Microsoft.Office.Interop.Excel库向已存在的Excel文件中写入数据。提供了两种方法,一种是根据指定模板写入并另存,另一种是在模板上直接写入数据。示例代码详细展示了如何创建Application对象,打开工作簿,选择工作表,设置数据范围并保存工作簿。
1491

被折叠的 条评论
为什么被折叠?



