最近工作小结
1.IIS中调用com组件读取失败
这个问题基本可以确定是个权限的问题,在web.config中添加identify节点,在里面设置相应的账号信息。在系统用户和组中,也要添加相应的用户,这个用户要添加到Adminstrator组中,给予最高权限。至于网上说的那些方法,在我的实验中,基本都不可行。
2.将文件保存为Excel
object oMissing = System.Reflection.Missing.Value;
Excel.ApplicationClass excelapp = new Excel.ApplicationClass();
excelapp.Visible = visiable;
Excel.Workbooks wbs = excelapp.Workbooks;
Excel.Workbook wb = wbs.Add(oMissing);
Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets[1];//sheet1
Excel.Range excelRange = ws.get_Range("A1", "A1");
excelRange.NumberFormatLocal = "@"; //设置单元的格式为文本格式。
ws.Name = "现场解吸报告-中石油廊坊分院";//Excel sheet的名字。
//excelRange.WrapText = true;//自动换行
//excelRange.EntireColumn.AutoFit();//自动调整列宽
ws.Cells.Select();
ws.Cells.Columns.AutoFit();
ws.Cells.WrapText = true;
ws.Cells.EntireColumn.AutoFit();
((Excel.Range)ws.Rows["1:1", System.Type.Missing]).RowHeight = 90;
((Excel.Range)ws.Rows["2:2", System.Type.Missing]).RowHeight = 35;
((Excel.Range)ws.Rows["3:3", System.Type.Missing]).RowHeight = 30;
((Excel.Range)ws.Rows["4:4", System.Type.Missing]).RowHeight = 50;
ws.get_Range(ws.Cells[1, 1],ws.Cells[1,14]).Merge(0);//单元格合并
ws.get_Range(ws.Cells[1, 1], ws.Cells[1, 14]).Font.Size = 28;
ws.get_Range(ws.Cells[1, 1], ws.Cells[1, 14]).Font.Color = System.Drawing.ColorTranslator.ToOle(Color.Red);//单元格字体颜色
ws.get_Range(ws.Cells[1, 1], ws.Cells[1, 14]).Font.Name = "Arial";
ws.get_Range(ws.Cells[1, 1], ws.Cells[1, 14]).Font.Bold = true;//单元格内字体加粗
ws.get_Range(ws.Cells[1, 1], ws.Cells[1, 14]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
string str1 = "Desorption Daily Report —PRIED Langfang,现场解吸报告-中石油廊坊分院";
str1 = str1.Replace(",", "\r\n");
ws.Cells[1, 1] = str1;//单元格的内容。
ws.get_Range(ws.Cells[2, 11], ws.Cells[2, 14]).Merge(0);
ws.get_Range(ws.Cells[2, 11], ws.Cells[2, 14]).Font.Size = 12;
ws.get_Range(ws.Cells[2, 11], ws.Cells[2, 14]).Font.Name = "Arial";
ws.get_Range(ws.Cells[2, 11], ws.Cells[2, 14]).Font.Bold = true;
ws.get_Range(ws.Cells[2, 11], ws.Cells[2, 14]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
ws.Cells[2, 11] = "Date: " + DateTime.Now + "\r\n报告日期: " + DateTime.Now;
ws.get_Range(ws.Cells[2, 1], ws.Cells[2, 10]).Merge(0);
ws.get_Range(ws.Cells[2, 1], ws.Cells[2, 10]).Font.Size = 12;
ws.get_Range(ws.Cells[2, 1], ws.Cells[2, 10]).Font.Name = "Arial";
ws.get_Range(ws.Cells[2, 1], ws.Cells[2, 10]).Font.Bold = true;
ws.get_Range(ws.Cells[2, 1], ws.Cells[2, 10]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
ws.Cells[2, 1] = "Well ID: " + wellName + "\r\n井名: " + wellName;
ws.get_Range(ws.Cells[3, 14], ws.Cells[4, 14]).Merge(0);
ws.get_Range(ws.Cells[3, 14], ws.Cells[4, 14]).Font.Size = 12;
ws.get_Range(ws.Cells[3, 14], ws.Cells[4, 14]).Font.Name = "Arial";
ws.get_Range(ws.Cells[3, 14], ws.Cells[4, 14]).Font.Bold = true;
ws.get_Range(ws.Cells[3, 14], ws.Cells[4, 14]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
ws.Cells[3, 14] = "comment\r\n 备注";
ws.get_Range(ws.Cells[3, 13], ws.Cells[4, 13]).Merge(0);
ws.get_Range(ws.Cells[3, 13], ws.Cells[4, 13]).Font.Size = 12;
ws.get_Range(ws.Cells[3, 13], ws.Cells[4, 13]).Font.Name = "Arial";
ws.get_Range(ws.Cells[3, 13], ws.Cells[4, 13]).Font.Bold = true;
ws.get_Range(ws.Cells[3, 13], ws.Cells[4, 13]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
ws.Cells[3, 13] = "Final Increase(%)\r\n 增长率(%)";
ws.get_Range(ws.Cells[3, 9], ws.Cells[3, 12]).Merge(0);
ws.get_Range(ws.Cells[3, 9], ws.Cells[3, 12]).Font.Size = 12;
ws.get_Range(ws.Cells[3, 9], ws.Cells[3, 12]).Font.Name = "Arial";
ws.get_Range(ws.Cells[3, 9], ws.Cells[3, 12]).Font.Bold = true;
ws.get_Range(ws.Cells[3, 9], ws.Cells[3, 12]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
ws.Cells[3, 9] = "Gas Content\r\n含气量";
//多单元格设置
ws.get_Range(ws.Cells[4, 9], ws.Cells[4, 12]).Font.Size = 12;
ws.get_Range(ws.Cells[4, 9], ws.Cells[4, 12]).Font.Name = "Arial";
ws.get_Range(ws.Cells[4, 9], ws.Cells[4, 12]).Font.Bold = true;
ws.get_Range(ws.Cells[4, 9], ws.Cells[4, 12]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
ws.Cells[4, 12] = "Qtotal,\r\ncc/g";
ws.Cells[4, 11] = "Q3,cc/g";
ws.Cells[4, 10] = "Q2,cc/g";
ws.Cells[4, 9] = "Q1,cc/g";
//多单元设置
ws.get_Range(ws.Cells[3, 1], ws.Cells[3, 8]).Font.Size = 12;
ws.get_Range(ws.Cells[3, 1], ws.Cells[3, 8]).Font.Name = "Arial";
ws.get_Range(ws.Cells[3, 1], ws.Cells[3, 8]).Font.Bold = true;
ws.get_Range(ws.Cells[3, 1], ws.Cells[3, 8]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
ws.get_Range(ws.Cells[3, 8], ws.Cells[4, 8]).Merge(0);
ws.Cells[3, 8] = "Water Base,°c\r\n水浴温度,°c";
ws.get_Range(ws.Cells[3, 7], ws.Cells[4, 7]).Merge(0);
ws.Cells[3, 7] = "Weight,g \r\n重量,g";
ws.get_Range(ws.Cells[3, 6], ws.Cells[4, 6]).Merge(0);
ws.Cells[3, 6] = "Length, m\r\n长度,m";
ws.get_Range(ws.Cells[3, 5], ws.Cells[4, 5]).Merge(0);
ws.Cells[3, 5] = "Center,\r\n深度中值,m";
ws.get_Range(ws.Cells[3, 4], ws.Cells[4, 4]).Merge(0);
ws.Cells[3, 4] = "Base,m\r\n样品底深,m";
ws.get_Range(ws.Cells[3, 3], ws.Cells[4, 3]).Merge(0);
ws.Cells[3, 3] = "Top,m\r\n样品顶深,m";
ws.get_Range(ws.Cells[3, 2], ws.Cells[4, 2]).Merge(0);
ws.Cells[3, 2] = "Core Date\r\n取心日期";
ws.get_Range(ws.Cells[3, 1], ws.Cells[4, 1]).Merge(0);
ws.Cells[3, 1] = "Sample No\r\n样品编号";
for (int i = 0; i < desorptionDailyReport.Count;i++)
{
ws.Cells[i + 5, 1] = desorptionDailyReport[i].SampleNo;
ws.Cells[i + 5, 2] = desorptionDailyReport[i].CoreData;
ws.Cells[i + 5, 3] = desorptionDailyReport[i].TopM;
ws.Cells[i + 5, 4] = desorptionDailyReport[i].BaseM;
ws.Cells[i + 5, 5] = desorptionDailyReport[i].CenterM;
ws.Cells[i + 5, 6] = desorptionDailyReport[i].Length;
ws.Cells[i + 5, 7] = desorptionDailyReport[i].Weight;
ws.Cells[i + 5, 8] = desorptionDailyReport[i].Temperture;
ws.Cells[i + 5, 9] = desorptionDailyReport[i].Q1;
ws.Cells[i + 5, 10] = desorptionDailyReport[i].Q2;
ws.Cells[i + 5, 11] = desorptionDailyReport[i].Q3;
ws.Cells[i + 5, 12] = desorptionDailyReport[i].Total;
ws.Cells[i + 5, 13] = desorptionDailyReport[i].FinalIncrease;
ws.Cells[i + 5, 14] = desorptionDailyReport[i].Comment;
}
ws.SaveAs(savePath, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);
ws.Application.Quit();
excelapp.Quit();