//需要添加 Microsoft.Office.Interop.Excel引用
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
if (app == null)
{
// Response.Write("服务器上缺少Excel组件,需要安装Office软件。");
MessageBox.Show("缺少Excel组件,需要安装Office软件");
return;
}
app.Visible = true;
app.UserControl = true;
Microsoft.Office.Interop.Excel.Workbooks workbooks = app.Workbooks;
//当前项目的绝对路径
string str = System.Environment.CurrentDirectory;
// Microsoft.Office.Interop.Excel._Workbook workbook = workbooks.Add("d:\\Template.xlsx"); //加载模板
Microsoft.Office.Interop.Excel._Workbook workbook = workbooks.Add(str + "\\chuhuoTemplate1.xlsx"); //加载模板
Microsoft.Office.Interop.Excel.Sheets sheets = workbook.Sheets;
// Microsoft.Office.Interop.Excel._Worksheet worksheet = (Microsoft.Office.Interop.Excel._Worksheet)sheets.get_Item(1); //第一个工作薄。
Microsoft.Office.Interop.Excel._Worksheet worksheet = (Microsoft.Office.Interop.Excel._Worksheet)(sheets.get_Item(1));
if (worksheet == null)
return; //工作薄中没有工作表.
//1、获取数据。
DataGridView d1 = new DataGridView();
this.Controls.Add(d1);
d1.Visible = false;
DataBaseUtils db = new DataBaseUtils ();
DataSet ds = new DataSet();
string mysql = "select * from tbl_outdepot";
ds = db.GetDataFromDB(mysql);
DataTable dt = ds.Tables[0]; //--------------------------------------------------根据实际需要修改--------------!!!!!
int rowCount = dt.Rows.Count;
if (rowCount < 1)
return; //没有数据,不需要导出。
//动态加入填表日期 损耗
worksheet.Cells[2, 2] = DateTime.Now.ToLongDateString();
worksheet.Cells[2, 7] = "是";
//2、写入数据,Excel索引从1开始。
for (int i = 1; i <= rowCount; i++)
{
int row_ = 3 + i; //Excel模板上表头和标题行占了3行,根据实际模板需要修改;
int dt_row = i - 1; //dataTable的行是从0开始的。
worksheet.Cells[row_, 1] = i.ToString();
worksheet.Cells[row_, 2] = dt.Rows[dt_row]["outid"].ToString();
worksheet.Cells[row_, 3] = dt.Rows[dt_row]["outname"].ToString();
}
//调整Excel的样式。
Microsoft.Office.Interop.Excel.Range rg = worksheet.Cells.get_Range("A3", worksheet.Cells[rowCount + 2, 8]);
rg.Borders.LineStyle = 1; //单元格加边框。
worksheet.Columns.AutoFit(); //自动调整列宽。
//3、保存生成的Excel文件。
//Missing 在System.Reflection命名空间下。
// 添加申请人等信息
worksheet.Cells[rowCount + 5, 1] = "出库人:" + "小张";
worksheet.Cells[rowCount + 5, 4] = "申请人:" + "小李";
worksheet.Cells[rowCount + 7, 1] = "审批人:" + "小松";
string savaPath = "d:\\1\\出货单" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".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);
问题是这句
Microsoft.Office.Interop.Excel.Range rg = worksheet.Cells.get_Range("A3", worksheet.Cells[rowCount + 2, 8]);
“object”未包含“get_Range”的定义
怎么修改,之前看过的说是吧()改为[]这个不行,这个就直接连代码都是错的