Esempio n. 1
0
        private void btnRun_Click(object sender, System.EventArgs e)
        {
            Workbook workbook = new Workbook();

            workbook.LoadFromFile(@"..\..\..\..\..\..\Data\MiscDataTable.xls");
            Worksheet sheet = workbook.Worksheets[0];
            //Creating a named range
            INamedRange NamedRange = workbook.NameRanges.Add("NamedRange");

            //Setting the range of the named range
            NamedRange.RefersToRange = sheet.Range["A8:E12"];
            workbook.SaveToFile("Sample.xls");
            ExcelDocViewer(workbook.FileName);
        }
        public override void OutPut(DataTable dt)
        {
            //创建Workbook实例
            Workbook workbook = new Workbook();

            //加载Excel文件
            if (File.Exists(base.m_TemplateFilePath))
            {
                workbook.LoadFromFile(base.m_TemplateFilePath);
            }
            else
            {
                workbook.Worksheets.Add("sheet1");
            }
            //获取第1张工作表
            Worksheet sheet = workbook.Worksheets[0];

            if (File.Exists(base.m_TemplateFilePath))
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        if (workbook.NameRanges.Contains(dt.Columns[j].Caption))
                        {
                            //定义第一个全局命名区域
                            INamedRange NamedRange1 = workbook.NameRanges[dt.Columns[j].Caption];
                            NamedRange1.RefersToRange.Value = dt.Rows[i][j].ToString();
                        }
                    }
                    string fileExt = dt.Columns[0].DataType == typeof(DateTime) ? DateTime.Parse(dt.Rows[i][0].ToString()).ToString("yyyyMMddHHmmss") : dt.Rows[i][0].ToString();
                    workbook.SaveToFile(base.m_OutputFilePath.Insert(m_OutputFilePath.LastIndexOf("."), fileExt));
                }
            }
            else
            {
                sheet.InsertDataTable(dt, true, 1, 1, -1, -1);
                workbook.SaveToFile(base.m_OutputFilePath);
                workbook.Dispose();
                if (MessageBox.Show("Excel导出成功:" + base.m_OutputFilePath + "\r\n是否要打开?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                {
                    System.Diagnostics.Process.Start(m_OutputFilePath);
                }
            }
        }