Exemple #1
0
        protected virtual void BuildSheet(XlsDocument xlsDoc, int sheetIndex, List <T> data, IList <ColumnSetting <T> > columnMap, string title)
        {
            int       startDataRowIndex;
            Worksheet worksheet = CreateSheet(xlsDoc, sheetIndex, columnMap, title, out startDataRowIndex);

            BuildSheetData(xlsDoc, worksheet, startDataRowIndex, data, columnMap);
        }
Exemple #2
0
        public static OpenXmlPackage.DocumentType DetectOutputType(XlsDocument xls)
        {
            OpenXmlPackage.DocumentType returnType = OpenXmlPackage.DocumentType.Document;
            try
            {
                //ToDo: Find better way to detect macro type
                if (xls.Storage.FullNameOfAllEntries.Contains("\\_VBA_PROJECT_CUR"))
                {
                    if (xls.WorkBookData.Template)
                    {
                        returnType = OpenXmlPackage.DocumentType.MacroEnabledTemplate;
                    }
                    else
                    {
                        returnType = OpenXmlPackage.DocumentType.MacroEnabledDocument;
                    }
                }
                else
                {
                    if (xls.WorkBookData.Template)
                    {
                        returnType = OpenXmlPackage.DocumentType.Template;
                    }
                    else
                    {
                        returnType = OpenXmlPackage.DocumentType.Document;
                    }
                }
            }
            catch (Exception)
            {
            }

            return(returnType);
        }
Exemple #3
0
        // GET: api/AutoSendMail
        public string GetData()
        {
            string excelName = "报修结果导出" + DateTime.Now.ToString("yyyyMMdd");

            string        connectString = System.Configuration.ConfigurationManager.ConnectionStrings["ITSMModel"].ToString();
            DataSet       ds            = new DataSet();
            SqlConnection conn          = new SqlConnection(connectString);
            string        filter        = string.Empty;

            conn.Open();

            SqlCommand cmd = conn.CreateCommand();              //创建SqlCommand对象

            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "select  a.BXDate, a.BXEmployee ,a.BXDept, c.Name as BXFaultName,AssetCode, a.Note as BXNote,BXDealNote ,BXDealEmployee, BXDealTime= case a.StatusId when 1 then NULL else a.BXDealTime end, b.Name as SatisfactionName, d.Name as StatusName from RepairApplyBills a  "
                              + "inner join FaultTypes c on c.Id = a.FaultTypeId "
                              + "inner join SatisfactionLevels b on b.Id = a.SatisfactionLevelId  "
                              + "inner join Status d on d.Id = a.StatusId "
                              + "where 1=1 " + filter;                 //sql语句

            SqlDataAdapter myDataAdapter = new SqlDataAdapter();

            myDataAdapter.SelectCommand = cmd;
            myDataAdapter.Fill(ds);
            if (ds.Tables[0].Rows.Count == 0)
            {
                throw new Exception("无可导出数据!");
            }
            XlsDocument xls = Common.DataTableExportToExcel(ds.Tables[0], excelName, "导出结果");

            Common.sendMail("测试附件", "测试附件", "*****@*****.**", "杨勇杰", "E:\\Code\\自主研发\\ESB\\Export\\" + excelName + ".xls");

            conn.Close();
            return(null);
        }
Exemple #4
0
        protected virtual Worksheet CreateSheet(XlsDocument xlsDoc, int sheetIndex, IList <ColumnSetting <T> > columnMap, string title, out int startDataRowIndex)
        {
            Worksheet worksheet      = xlsDoc.Workbook.Worksheets.Count > 0 ? xlsDoc.Workbook.Worksheets[0] : xlsDoc.Workbook.Worksheets.Add("Sheet" + sheetIndex.ToString());
            int       headerRowIndex = 1;

            //if (string.IsNullOrWhiteSpace(templateExcelPath))
            //{
            if (!string.IsNullOrWhiteSpace(title))
            {
                ExcelFileExporterHelper.MergeRegion(worksheet, ExcelFileExporterHelper.GetSheetTitleXF(xlsDoc), title.Trim(), headerRowIndex, 1, headerRowIndex, columnMap.Count);
                headerRowIndex = headerRowIndex + 1;
            }
            var xf            = ExcelFileExporterHelper.GetDataCellXF(xlsDoc);
            int excelColIndex = 0;

            foreach (var col in columnMap)
            {
                excelColIndex++;
                worksheet.Cells.Add(headerRowIndex, excelColIndex, col.ColumnName, xf);
            }

            decimal[] rstContainer = new decimal[columnMap.Count];
            headerRowIndex    = headerRowIndex + 1;
            startDataRowIndex = headerRowIndex;
            return(worksheet);
        }
Exemple #5
0
        public async Task <XlsDocument> Export()
        {
            string excelName = "打印机代码导出" + DateTime.Now.ToString("yyyyMMdd");

            string        connectString = System.Configuration.ConfigurationManager.ConnectionStrings["ITSMModel"].ToString();
            DataSet       ds            = new DataSet();
            SqlConnection conn          = new SqlConnection(connectString);

            conn.Open();

            SqlCommand cmd = conn.CreateCommand();              //创建SqlCommand对象

            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "select Id, No, Name, Center, case Color when 1 then '有' else '无' end as Color, "
                              + "case FiveFloor when 1 then '有' else '无' end as FiveFloor, "
                              + "case SixFloor when 1 then '有' else '无' end as SixFloor, "
                              + "case SevenFloor when 1 then '有' else '无' end as SevenFloor, "
                              + "case EighthFloor when 1 then '有' else '无' end as EighthFloor, "
                              + "Note from PrinterPermissions"; //sql语句

            SqlDataAdapter myDataAdapter = new SqlDataAdapter();

            myDataAdapter.SelectCommand = cmd;
            myDataAdapter.Fill(ds);
            if (ds.Tables[0].Rows.Count == 0)
            {
                throw new Exception("无可导出数据!");
            }
            XlsDocument xls = DataTableExportToExcel(ds.Tables[0], excelName, "导出结果");

            conn.Close();
            return(xls);
        }
/*
 *      //Write Whole Table data
 *      public void Write(DataTable data)
 *      {
 *
 *          //Set list separator from This Machine regional Settings
 *          CsvWriter.columnDelimiter = CultureInfo.CurrentCulture.TextInfo.ListSeparator;
 *          StreamWriter writer = new StreamWriter(FileName, false, Encoding.GetEncoding("windows-1251"));
 *          CsvWriter.WriteToStream(writer, data, true, false);
 *          writer.Close();
 *          writer = null;
 *      }
 */
        public void Write(DataTable table)
        {
            using (var file2Save = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write))
            {
                XlsDocument newDoc = new XlsDocument();
                Workbook    wbk    = newDoc.Workbook;
                Worksheet   sht    = wbk.Worksheets.Add("Result");

                for (int i = 0; i < table.Columns.Count; i++)
                {
                    var col = table.Columns[i];
                    sht.Cells.Add(1, i + 1, col.ColumnName);
                }

                // заполняем результат работы
                for (int i = 0; i < table.Rows.Count; i++)
                {
                    var row = table.Rows[i];
                    for (int ic = 0; ic < row.ItemArray.Length; ic++)
                    {
                        var cell = (row[ic] != null)?row[ic]:string.Empty;
                        sht.Cells.Add(2 + i, 1 + ic, cell.ToString());
                    }
                }
                newDoc.Save(file2Save);
                file2Save.Close();
            }
        }
Exemple #7
0
        /// <summary>
        /// 创建一个表格单元格的样式,fontSize=0表示使用默认大小11,默认居中
        /// </summary>
        /// <param name="doc"></param>
        /// <param name="cellLine">是否使用边框线</param>
        /// <param name="underline">字体是下划线样式,默认没有下划线</param>
        /// <param name="fontSize">字体大小,0表示11</param>
        /// <returns></returns>
        public static AppLibrary.WriteExcel.XF NewXf(XlsDocument doc, CellLine cellLine, UnderlineTypes underline = UnderlineTypes.None, int fontSize = 0)
        {
            int size = fontSize;

            if (fontSize == 0)
            {
                size = 10;
            }
            AppLibrary.WriteExcel.XF xf = doc.NewXF();
            xf.Font.FontName       = "宋体";
            xf.Font.Height         = (ushort)(size * 20);
            xf.Font.Underline      = underline;
            xf.TextWrapRight       = true;
            xf.HorizontalAlignment = AppLibrary.WriteExcel.HorizontalAlignments.Centered;
            xf.VerticalAlignment   = AppLibrary.WriteExcel.VerticalAlignments.Centered;
            if (cellLine.ShowTop)
            {
                xf.TopLineStyle = 1;
            }
            if (cellLine.ShowRight)
            {
                xf.RightLineStyle = 1;
            }
            if (cellLine.ShowBottom)
            {
                xf.BottomLineStyle = 1;
            }
            if (cellLine.ShowLeft)
            {
                xf.LeftLineStyle = 1;
            }
            return(xf);
        }
Exemple #8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        XlsDocument xls = new XlsDocument(); //Create a new MyXls Document

        xls.Send();                          //MyXls adds a single empty sheet named Sheet1 when Send
                                             //is called, if you didn't add one yourself.
    }
Exemple #9
0
        private XlsDocument DataTableExportToExcel(DataTable dataTable, string excelName, string sheetName)
        {
            XlsDocument xls = new XlsDocument();                      //新建一个xls文档

            xls.FileName = excelName + ".xls";                        //设定Excel文件名

            Worksheet sheet = xls.Workbook.Worksheets.Add(sheetName); //填加名为"第一个Sheet Demo"的sheet页
            Cells     cells = sheet.Cells;                            //Cells实例是sheet页中单元格(cell)集合

            cells.Add(1, 1, "代码");
            cells.Add(1, 2, "名称");
            cells.Add(1, 3, "中心");
            cells.Add(1, 4, "彩色");
            cells.Add(1, 5, "五楼权限");
            cells.Add(1, 6, "六楼权限");
            cells.Add(1, 7, "七楼权限");
            cells.Add(1, 8, "八楼权限");
            cells.Add(1, 9, "备注");

            for (int row = 0; row < dataTable.Rows.Count; row++)
            {
                for (int column = 0; column < dataTable.Columns.Count; column++)
                {
                    object val = dataTable.Rows[row][column];
                    cells.Add(row + 2, column + 1, val.ToString());
                }
            }

            //xls.Save("E:\\Code\\ESB\\自主研发\\ESB\\Export\\", true);
            xls.Save("D:\\App_Site\\ITSM\\Export\\", true);
            //xls.Send();
            return(xls);
        }
Exemple #10
0
        /// <summary>
        /// 导出Excel
        /// </summary>
        public static void ExportExcelForPercent(string sheetName, string xlsname, DataTable table)
        {
            //DataTable table = GetDataTableForPercent(areaid, dt);

            if (table == null || table.Rows.Count == 0)
            {
                return;
            }
            XlsDocument xls   = new XlsDocument();
            Worksheet   sheet = xls.Workbook.Worksheets.Add(sheetName);

            //填充表头
            foreach (DataColumn col in table.Columns)
            {
                sheet.Cells.Add(1, col.Ordinal + 1, col.ColumnName);
            }

            //填充内容
            for (int i = 0; i < table.Rows.Count; i++)
            {
                for (int j = 0; j < table.Columns.Count; j++)
                {
                    sheet.Cells.Add(i + 2, j + 1, table.Rows[i][j].ToString());
                }
            }

            //保存
            xls.FileName = xlsname;
            xls.Save();
            xls = null;
        }
Exemple #11
0
        internal XF GetDataCellXF(XlsDocument xls, Type dataType)
        {
            if (m_XF == null)
            {
                VerticalAlignments v1 = ConvertAlignments(VerticalAlignment).GetValueOrDefault(VerticalAlignments.Centered);
                bool hasBorder1       = HasBorder.GetValueOrDefault(true);

                XF xf = xls.NewXF();
                xf.VerticalAlignment = v1;
                xf.Font.Height       = (ushort)(10 * this.FONT_HEIGHT_SCALE);
                if (hasBorder1)
                {
                    xf.LeftLineStyle   = 1;
                    xf.LeftLineColor   = Colors.Black;
                    xf.TopLineStyle    = 1;
                    xf.TopLineColor    = Colors.Black;
                    xf.RightLineStyle  = 1;
                    xf.RightLineColor  = Colors.Black;
                    xf.BottomLineStyle = 1;
                    xf.BottomLineColor = Colors.Black;
                    xf.TextWrapRight   = true;
                }
                m_XF = xf;
            }
            HorizontalAlignments h1 = ConvertAlignments(HorizontalAlignment).GetValueOrDefault(SetDefaultHorizontalAlignmentsForType(dataType));

            m_XF.HorizontalAlignment = h1;
            return(m_XF);
        }
Exemple #12
0
        public static string getAllDataToExcel()
        {
            int    code    = 1;
            string message = "success";
            List <StudentsUser> listUser = new List <StudentsUser>();

            using (StudentsUserBLL bll = new StudentsUserBLL())
            {
                listUser = bll.getStudentUser();
            }
            XlsDocument xls = new XlsDocument();

            if (listUser.Count != 0)
            {
                xls.FileName = DateTime.Now.ToString("u").Replace(":", "_").Replace(" ", "_") + ".xls";
                Worksheet sheet = xls.Workbook.Worksheets.Add("考生数据");
                Cells     cells = sheet.Cells;
                cells.Add(1, 1, "身份证号");
                cells.Add(1, 2, "姓名");
                cells.Add(1, 3, "准考证");
                cells.Add(1, 4, "手机号");
                for (int i = 1; i <= listUser.Count; i++)
                {
                    cells.Add(i + 1, 1, listUser[i - 1].Sfzh);
                    cells.Add(i + 1, 2, listUser[i - 1].StuName);
                    cells.Add(i + 1, 3, listUser[i - 1].Zkzh);
                    cells.Add(i + 1, 4, listUser[i - 1].Mobile);
                }
                xls.Save(HttpContext.Current.Server.MapPath("~/uploads") + "//");
            }
            return(JsonConvert.SerializeObject(
                       new { code = code, message = message, filePath = "uploads/" + xls.FileName }));
        }
Exemple #13
0
        protected void Test()
        {
            XlsDocument xls = new XlsDocument();

            xls.FileName = "D:\\12333333.xls";
            string    sheetName = "chc 实例";
            Worksheet sheet     = xls.Workbook.Worksheets.Add(sheetName); //填加名为"chc 实例"的sheet页
            Cells     cells     = sheet.Cells;                            //Cells实例是sheet页中单元格(cell)集合
            //单元格1-base
            Cell cell = cells.Add(1, 2, "抗");                             //设定第一行,第二例单元格的值

            cell.HorizontalAlignment = HorizontalAlignments.Centered;     //设定文字居中
            cell.Font.FontName       = "方正舒体";                            //设定字体
            cell.Font.Height         = 20 * 20;                           //设定字大小(字体大小是以 1/20 point 为单位的)
            cell.UseBorder           = true;                              //使用边框
            cell.BottomLineStyle     = 2;                                 //设定边框底线为粗线
            cell.BottomLineColor     = Colors.DarkRed;                    //设定颜色为暗红

            //cell的格式还可以定义在一个xf对象中
            CellFormat cellXF = xls.NewXF();                            //为xls生成一个XF实例(XF是cell格式对象)

            cellXF.HorizontalAlignment = HorizontalAlignments.Centered; //设定文字居中
            cellXF.Font.FontName       = "方正舒体";                        //设定字体
            cellXF.Font.Height         = 20 * 20;                       //设定字大小(字体大小是以 1/20 point 为单位的)
            cellXF.UseBorder           = true;                          //使用边框
            cellXF.BottomLineStyle     = 2;                             //设定边框底线为粗线
            cellXF.BottomLineColor     = Colors.DarkRed;                //设定颜色为暗红

            cell = cells.Add(2, 2, "震", cellXF);                        //以设定好的格式填加cell

            cellXF.Font.FontName = "仿宋_GB2312";
            cell = cells.Add(3, 2, "救", cellXF);             //格式可以多次使用

            ColumnInfo colInfo = new ColumnInfo(xls, sheet); //生成列格式对象

            //设定colInfo格式的起作用的列为第2列到第5列(列格式为0-base)
            colInfo.ColumnIndexStart = 1;                     //起始列为第二列
            colInfo.ColumnIndexEnd   = 5;                     //终止列为第六列
            colInfo.Width            = 15 * 256;              //列的宽度计量单位为 1/256 字符宽
            sheet.AddColumnInfo(colInfo);                     //把格式附加到sheet页上(注:AddColumnInfo方法有点小问题,不给把colInfo对象多次附给sheet页)
            colInfo.ColumnIndexEnd = 6;                       //可以更改列对象的值
            ColumnInfo colInfo2 = new ColumnInfo(xls, sheet); //通过新生成一个列格式对象,才到能设定其它列宽度

            colInfo2.ColumnIndexStart = 7;
            colInfo2.ColumnIndexEnd   = 8;
            colInfo2.Width            = 1 * 256;
            sheet.AddColumnInfo(colInfo2);

            MergeArea meaA = new MergeArea(1, 2, 3, 4); //一个合并单元格实例(合并第一行、第三例 到 第二行、第四例)

            sheet.AddMergeArea(meaA);                   //填加合并单元格
            cellXF.VerticalAlignment      = VerticalAlignments.Centered;
            cellXF.Font.Height            = 48 * 20;
            cellXF.Font.Bold              = true;
            cellXF.Pattern                = 3;                //设定单元格填充风格。如果设定为0,则是纯色填充
            cellXF.PatternBackgroundColor = Colors.DarkRed;   //填充的底色
            cellXF.PatternColor           = Colors.DarkGreen; //设定填充线条的颜色
            cell = cells.Add(1, 3, "灾", cellXF);
            xls.Save();
        }
Exemple #14
0
        /// <summary>
        /// 将EXCEL导出到DataTable
        /// </summary>
        /// <param name="excelPath">excel路径</param>
        /// <param name="sheetIndex">Worksheets『从0开始』</param>
        /// <returns>DataTable</returns>
        public static DataTable ToDataTable(string excelPath, int sheetIndex)
        {
            CheckedHanlder.CheckedExcelFileParamter(excelPath, true);
            XlsDocument _excelDoc = new XlsDocument(excelPath);
            DataTable   _table    = new DataTable();
            Worksheet   _sheet    = _excelDoc.Workbook.Worksheets[sheetIndex];
            ushort      _colCount = _sheet.Rows[1].CellCount;
            ushort      _rowCount = (ushort)_sheet.Rows.Count;

            for (ushort j = 1; j <= _colCount; j++)
            {
                _table.Columns.Add(new DataColumn(j.ToString()));
            }

            for (ushort i = 1; i <= _rowCount; i++)
            {
                DataRow _row = _table.NewRow();

                for (ushort j = 1; j <= _colCount; j++)
                {
                    _row[j - 1] = _sheet.Rows[i].GetCell(j).Value;
                }

                _table.Rows.Add(_row);
            }

            return(_table);
        }
Exemple #15
0
        static void SaveXLS(List <string> codes)
        {
            try
            {
                XlsDocument xlsDoc = new XlsDocument();
                xlsDoc.FileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";

                XF titleXF = xlsDoc.NewXF();
                titleXF.Font.Bold     = true;
                titleXF.Font.FontName = "宋体";

                Worksheet sheet = xlsDoc.Workbook.Worksheets.Add("sheet1");

                for (int i = 0; i < codes.Count; i++)
                {
                    sheet.Cells.Add(i + 1, 1, codes[i]);
                }


                xlsDoc.Save();
            }
            catch (Exception ex)
            {
                throw new Exception("生成Excel文件失败", ex);
            }
        }
Exemple #16
0
        public void ExportToExcel(DataTable dtSource, string strFileName)
        {
            XlsDocument xls   = new XlsDocument();
            Worksheet   sheet = xls.Workbook.Worksheets.Add("sheet1");
            int         i     = 0;

            //write data from datatable in Excel file
            foreach (DataColumn column in dtSource.Columns)
            {
                sheet.Cells.Add(1, i + 1, column.ColumnName);
                i++;
            }
            for (int j = 0; j < dtSource.Rows.Count; j++)
            {
                for (int k = 0; k < dtSource.Columns.Count; k++)
                {
                    sheet.Cells.Add(j + 2, k + 1, dtSource.Rows[j][k].ToString());
                }
            }
            // save
            xls.FileName = strFileName;
            if (File.Exists(strFileName))
            {
                File.Delete(strFileName);
            }
            xls.Save();
        }
Exemple #17
0
        /// <summary>
        /// 返回需要导出的Excel字节
        /// </summary>
        /// <param name="filetitle">Excel文件名</param>
        /// <param name="titles">Excel标题</param>
        /// <param name="dt">需要导出的Table数据</param>
        /// <returns>Excel字节流</returns>
        protected byte[] GetExcelBytes(string filetitle, List <string> titles, DataTable dt)
        {
            XlsDocument xls = new XlsDocument();

            xls.FileName = filetitle;

            Worksheet wks  = xls.Workbook.Worksheets.Add(filetitle);
            Cells     cell = wks.Cells;
            XF        xf   = xls.NewXF();

            for (int i = 1; i <= dt.Rows.Count; i++)
            {
                for (int j = 1; j <= titles.Count; j++)
                {
                    if (i == 1)
                    {
                        cell.Add(i, j, titles[j - 1], xf);
                    }
                    else
                    {
                        cell.Add(i + 1, j, dt.Rows[i - 1][j - 1], xf);
                    }
                }
            }
            return(xls.Bytes.ByteArray);
        }
Exemple #18
0
    /// <summary>
    /// 绑定数据库生成XLS报表
    /// </summary>
    /// <param name="ds">获取DataSet数据集</param>
    /// <param name="xlsName">报表表名</param>
    private void xlsGridview(DataTable dt, string xlsName)
    {
        XlsDocument xls = new XlsDocument();

        xls.FileName = Server.UrlEncode(xlsName);
        int       rowIndex = 1;
        int       colIndex = 0;
        Worksheet sheet    = xls.Workbook.Worksheets.Add("sheet");//状态栏标题名称
        //设置列格式
        ColumnInfo colInfo = new ColumnInfo(xls, sheet);

        colInfo.ColumnIndexStart = 0;
        colInfo.ColumnIndexEnd   = 8;
        colInfo.Width            = 20 * 256;
        sheet.AddColumnInfo(colInfo);
        //设置样式
        XF xf = xls.NewXF();

        xf.HorizontalAlignment = HorizontalAlignments.Centered;
        xf.VerticalAlignment   = VerticalAlignments.Centered;
        xf.TextWrapRight       = true;
        xf.UseBorder           = true;
        xf.TopLineStyle        = 1;
        xf.TopLineColor        = Colors.Black;
        xf.BottomLineStyle     = 1;
        xf.BottomLineColor     = Colors.Black;
        xf.LeftLineStyle       = 1;
        xf.LeftLineColor       = Colors.Black;
        xf.RightLineStyle      = 1;
        xf.RightLineColor      = Colors.Black;
        xf.Font.Bold           = true;
        Cells cells = sheet.Cells;

        foreach (DataColumn col in dt.Columns)
        {
            colIndex++;
            Cell cell = cells.Add(1, colIndex, col.ColumnName, xf);
            cell.Font.Bold = true;
        }

        foreach (DataRow row in dt.Rows)
        {
            rowIndex++;
            colIndex = 0;
            foreach (DataColumn col in dt.Columns)
            {
                colIndex++;
                Cell cell = cells.Add(rowIndex, colIndex, row[col.ColumnName].ToString(), xf); //转换为数字型
                //如果你数据库里的数据都是数字的话 最好转换一下,不然导入到Excel里是以字符串形式显示。
                cell.Font.FontFamily = FontFamilies.Roman;                                     //字体
                cell.Font.Bold       = false;                                                  //字体为粗体
            }
        }
        xls.Send();
        Response.Flush();
        Response.End();
    }
Exemple #19
0
 /// <summary>
 /// 释放资源
 /// </summary>
 public void Dispose()
 {
     doc = null;
     ds.Dispose();
     if (!ds.IsNull())
     {
         ds = null;
     }
 }
Exemple #20
0
        public override byte[] RetByte(List <string[]> list, int operateid, string title)
        {
            string[]    titles = { "序号", "合同号",     "	姓名", "身份证号", "名义金额", "月本金",
                                   "月利息",   "扣款失败手续费", "罚息",  "总合计",  "月利率",  "贷款期限","账号","开户省市", "放贷月份", "扣款月份", "科目名称" };
            XlsDocument xls = new XlsDocument();

            xls.FileName = title;
            Worksheet wks  = xls.Workbook.Worksheets.Add(title);
            Cells     cell = wks.Cells;

            XF xf = ExportExtend.SetCommonStyle(xls);

            ExportExtend.SetColumnWidth(xls, wks, 1, 20);
            ExportExtend.SetColumnWidth(xls, wks, 2, 11);
            ExportExtend.SetColumnWidth(xls, wks, 3, 25);
            ExportExtend.SetColumnWidth(xls, wks, 4, 12);
            ExportExtend.SetColumnWidth(xls, wks, 5, 12);
            ExportExtend.SetColumnWidth(xls, wks, 6, 12);
            ExportExtend.SetColumnWidth(xls, wks, 7, 15);
            ExportExtend.SetColumnWidth(xls, wks, 8, 12);
            ExportExtend.SetColumnWidth(xls, wks, 9, 12);
            ExportExtend.SetColumnWidth(xls, wks, 10, 12);
            ExportExtend.SetColumnWidth(xls, wks, 11, 10);
            ExportExtend.SetColumnWidth(xls, wks, 12, 25);
            ExportExtend.SetColumnWidth(xls, wks, 14, 13);
            ExportExtend.SetColumnWidth(xls, wks, 15, 13);
            for (int i = 1; i <= list.Count; i++)
            {
                if (i == 1)//序号
                {
                    for (int j = 1; j <= list[i - 1].Length; j++)
                    {
                        Cell cel = cell.Add(i, j, titles[j - 1], xf);
                    }
                }
                for (int j = 1; j <= list[i - 1].Length; j++)
                {
                    if (j == 1)
                    {
                        Cell cel = cell.Add(i + 1, 1, i, xf);
                    }
                    else if (j >= 5 && j <= 10)//金额格式
                    {
                        Cell cel = cell.Add(i + 1, j, list[i - 1][j - 1].Trim().ToDecimal(), xf);
                    }
                    else if (j == 12)
                    {
                        Cell cel = cell.Add(i + 1, j, list[i - 1][j - 1].Trim().ToInt(), xf);
                    }
                    else
                    {
                        Cell cel = cell.Add(i + 1, j, list[i - 1][j - 1].Trim(), xf);
                    }
                }
            }
            return(xls.Bytes.ByteArray);
        }
Exemple #21
0
        public static void ExportExcelForPercentForWebs(string sheetName, string xlsname, string[] areaid)
        {
            XlsDocument xls   = new XlsDocument();
            DataTable   table = GetDataTableForPercents(areaid);
            Worksheet   sheet;

            try
            {
                sheet = xls.Workbook.Worksheets.Add("员工信息表");

                if (table == null || table.Rows.Count == 0)
                {
                    return;
                }

                //填充表头
                foreach (DataColumn col in table.Columns)
                {
                    sheet.Cells.Add(1, col.Ordinal + 1, col.ColumnName);
                }

                //填充内容
                for (int i = 0; i < table.Rows.Count; i++)
                {
                    for (int j = 0; j < table.Columns.Count; j++)
                    {
                        sheet.Cells.Add(i + 2, j + 1, table.Rows[i][j].ToString());
                    }
                }
                using (MemoryStream ms = new MemoryStream())
                {
                    xls.Save(ms);
                    ms.Flush();
                    ms.Position = 0;
                    sheet       = null;
                    xls         = null;
                    HttpResponse response = System.Web.HttpContext.Current.Response;
                    response.Clear();

                    response.Charset     = "UTF-8";
                    response.ContentType = "application/vnd-excel";
                    System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment; filename=" + xlsname));

                    byte[] data = ms.ToArray();
                    System.Web.HttpContext.Current.Response.BinaryWrite(data);
                }
            }
            catch (Exception e)
            {
                Log.Error(e.StackTrace);
            }
            finally
            {
                sheet = null;
                xls   = null;
            }
        }
Exemple #22
0
    protected void Page_Load(object sender, EventArgs e)
    {
        XlsDocument xls = new XlsDocument();

        xls.FileName = "MyXLS Hello World.xls";
        Worksheet sheet = xls.Workbook.Worksheets.AddNamed("Hello, World!");

        sheet.Cells.AddValueCell(1, 1, "Hello, World!");
        xls.Send();
    }
        /// <summary>
        /// 按行写入数据
        /// </summary>
        /// <param name="filePath">完整的保存路径 包含文件名</param>
        /// <param name="firstTitleRow">第一行的Title信息</param>
        /// <param name="rowsInfo">每行数据</param>
        public static void ExcelExportWriteByRow(string filePath, List <object> firstTitleRow,
                                                 List <List <object> > rowsInfo)
        {
            try
            {
                if (File.Exists(filePath))
                {
                    File.Delete(filePath);
                }

                string    sheetName = Path.GetFileNameWithoutExtension(filePath);
                var       xls       = new XlsDocument();
                Worksheet sheet     = xls.Workbook.Worksheets.Add(sheetName);

                for (int j = 0; j < firstTitleRow.Count; j++)
                {
                    if (firstTitleRow[j] == null)
                    {
                        continue;
                    }
                    sheet.Cells.Add(1, j + 1, firstTitleRow[j].ToString());
                }
                for (int j = 0; j < rowsInfo.Count; j++)
                {
                    if (j > MaxRowCount)
                    {
                        sheet.Cells.Add(j + 2, 1, "超出100000列,不再写入.");
                        break;
                    }
                    for (int k = 0; k < rowsInfo[j].Count; k++)
                    {
                        if (rowsInfo[j][k] == null)
                        {
                            continue;
                        }
                        sheet.Cells.Add(j + 2, k + 1, rowsInfo[j][k].ToString());
                    }
                }
                string strFilePath = Path.GetDirectoryName(filePath);
                try
                {
                    xls.FileName = sheetName + ".xls";
                }
                catch (Exception ex)
                {
                    Wlst.Cr.Core.UtilityFunction.WriteLog.WriteLogError("系统在导出报表设置报表名称时候报错:但跳过,名称:" + sheetName + ";ex:" + ex);
                }
                xls.Save(strFilePath);
                xls = null;
            }
            catch (Exception ex)
            {
                Wlst.Cr.Core.UtilityFunction.WriteLog.WriteLogError("系统在导出报表时出错:" + ex);
            }
        }
Exemple #24
0
        /// <summary>
        /// 生成XSL
        /// </summary>
        /// <param name="ds">DataSet对象</param>
        /// <param name="path">保存路径(包含文件名)</param>
        /// <param name="overwrite">是否覆盖</param>
        /// <returns></returns>
        public static bool CreateXLS(DataSet ds, string path, bool overwrite)
        {
            if (File.Exists(path) && !overwrite)
            {
                return(false);
            }

            try
            {
                //1.创建xls对象
                XlsDocument xlsDoc = new XlsDocument();
                xlsDoc.FileName = Path.GetFileName(path);

                for (int i = 0; i < ds.Tables.Count; i++)
                {
                    //2.创建表
                    string    sheetName = string.IsNullOrEmpty(ds.Tables[i].TableName) ? "Sheet" + i.ToString() : ds.Tables[i].TableName;
                    Worksheet sheet     = xlsDoc.Workbook.Worksheets.Add(sheetName);

                    //3.创建行列,注意cellRow,cellColumn都必须>=1
                    Cells cells = sheet.Cells;

                    //3.1 添加字段名
                    for (int col = 0; col < ds.Tables[i].Columns.Count; col++)
                    {
                        Cell cell = cells.Add(1, col + 1, ds.Tables[i].Columns[col].ColumnName);
                        cell.Font.Weight = FontWeight.Bold;
                    }

                    //3.2 添加记录
                    for (int row = 0; row < ds.Tables[i].Rows.Count; row++)
                    {
                        for (int col = 0; col < ds.Tables[i].Columns.Count; col++)
                        {
                            cells.Add(row + 2, col + 1, string.IsNullOrEmpty(ds.Tables[i].Rows[row][col].ToString()) ? "-" : ds.Tables[i].Rows[row][col].ToString());
                        }
                    }
                }

                //4.准备保存文件夹
                if (!Directory.Exists(Path.GetDirectoryName(path)))
                {
                    Directory.CreateDirectory(Path.GetDirectoryName(path));
                }

                //5.保存
                xlsDoc.Save(Path.GetDirectoryName(path), overwrite);
            }
            catch
            {
                return(false);
            }

            return(true);
        }
        public override byte[] RetByte(List <string[]> list, int operateid,
                                       List <Customer> customer, string title)
        {
            string[] titles = { "币种", "顺序号",          "协议编号",  "收款单位名称",  "付款金额", "用途", "备注"
                                ,     "付款账户短信通知手机号码", "自定义序号", "是否是工行账号", "付方账号开户行行号" };

            XlsDocument xls = new XlsDocument();

            xls.FileName = title;
            Worksheet wks  = xls.Workbook.Worksheets.Add(title);
            Cells     cell = wks.Cells;

            XF xf = ExportExtend.SetCommonStyle(xls);

            ExportExtend.SetColumnWidth(xls, wks, 1, 25);
            ExportExtend.SetColumnWidth(xls, wks, 3, 25);
            ExportExtend.SetColumnWidth(xls, wks, 4, 15);
            ExportExtend.SetColumnWidth(xls, wks, 7, 25);
            ExportExtend.SetColumnWidth(xls, wks, 12, 12);
            ExportExtend.SetColumnWidth(xls, wks, 15, 25);
            ExportExtend.SetColumnWidth(xls, wks, 17, 20);
            ExportExtend.SetColumnWidth(xls, wks, 18, 20);

            for (int i = 1; i <= list.Count; i++)
            {
                if (i == 1)
                {
                    for (int j = 1; j <= list[i - 1].Length; j++)
                    {
                        Cell cel = cell.Add(i, j, titles[j - 1], xf);
                    }
                }
                for (int j = 1; j <= list[i - 1].Length; j++)
                {
                    if (j == 1)
                    {
                        Cell cel = cell.Add(i + 1, 1, i, xf);
                    }

                    else if ((j >= 5 && j <= 13))
                    {
                        Cell cel = cell.Add(i + 1, j, list[i - 1][j - 1].ToDecimal(), xf);
                    }
                    else if (j == 14)
                    {
                        Cell cel = cell.Add(i + 1, j, list[i - 1][j - 1].ToInt(), xf);
                    }
                    else
                    {
                        Cell cel = cell.Add(i + 1, j, list[i - 1][j - 1].Trim(), xf);
                    }
                }
            }
            return(xls.Bytes.ByteArray);
        }
Exemple #26
0
        public static string getstuAllInfoToExcle()
        {
            int               code     = 1;
            string            message  = "返回数据成功";
            List <StuAllInfo> ListUser = new List <StuAllInfo>();

            using (StuAllInfoBLL bll = new StuAllInfoBLL())
            {
                ListUser = bll.getStuAllInfo();
            }

            XlsDocument xls = new XlsDocument();//建立excle工作表

            if (ListUser.Count != 0)
            {
                xls.FileName = DateTime.Now.ToString("u").Replace(":", "-").Replace("Z", "") + ".xls";
                Worksheet sheet = xls.Workbook.Worksheets.Add("考生数据");
                Cells     cells = sheet.Cells;
                cells.Add(1, 1, "身份证号");
                cells.Add(1, 2, "姓名");
                cells.Add(1, 3, "性别");
                cells.Add(1, 4, "准考证号");
                cells.Add(1, 5, "手机号");
                cells.Add(1, 6, "第一志愿");
                cells.Add(1, 7, "第二志愿");
                for (int i = 2; i < ListUser.Count; i++)
                {
                    cells.Add(i, 1, ListUser[i - 2].Sfzh);
                    cells.Add(i, 2, ListUser[i - 2].StuName);
                    cells.Add(i, 3, ListUser[i - 2].Xb == 1 ? "男" : "女");
                    cells.Add(i, 4, ListUser[i - 2].Zkzh);
                    cells.Add(i, 5, ListUser[i - 2].Mobile);
                    if (ListUser[i - 2].FrsZY != null)
                    {
                        cells.Add(i, 6, getZymcByZydm(ListUser[i - 2].FrsZY));
                    }
                    if (ListUser[i - 2].SecZY != null)
                    {
                        if (ListUser[i - 2].SecZY.Trim().Length != 0)
                        {
                            cells.Add(i, 7, getZymcByZydm(ListUser[i - 2].SecZY));
                        }
                        cells.Add(i, 7, getZymcByZydm(ListUser[i - 2].SecZY));
                    }
                }
                xls.Save(HttpContext.Current.Server.MapPath("~/uploads") + "//");
            }
            return(JsonConvert.SerializeObject(new
            {
                code = code,
                message = message,
                filePath = "uploads/" + xls.FileName,
            }));
        }
Exemple #27
0
        public XLSType createXlsRequestTest(string number, string street1, string street2, string city, string requestID)
        {
            XlsDocument xLSDocument = XlsDocument.CreateDocument();
            XLSType     xLSType     = xLSDocument.XLS.Append();

            xLSType.lang.Value = ServiceConfigProperties.Language;
            // should be added one only
            RequestUtil.addXlsHeader(ref xLSType);
            addGeocodeRequest(ref xLSType, number, street1, street2, city, requestID);
            return(xLSType);
        }
        public void CreateSpreadsheetFromIEnumerable()
        {
            DataSourceConverter <DisneyCharacter> converter = new DataSourceConverter <DisneyCharacter>();

            converter.Fields.Add(new AdapterBoundField <DisneyCharacter>("Name", "Character Name"));
            converter.Fields.Add(new AdapterBoundField <DisneyCharacter>("Age", null, "{0:###}"));
            XlsDocument doc = new XlsDocument();

            converter.CreateWorksheet(doc, _dataList, "testing");

            ValidateXlsToIList(doc);
        }
    public string Export(DataTable dt)
    {
        XlsDocument xls      = new XlsDocument();
        string      fileName = DateTime.Now.ToString("yyyyMMddhhmmss") + "库区库存";

        xls.FileName = fileName;
        int       rowIndex = 1;
        Worksheet sheet    = xls.Workbook.Worksheets.Add("库区库存");
        Cells     cells    = sheet.Cells;

        sheet.Cells.Merge(1, 1, 1, 2);
        Cell cell = cells.Add(1, 1, "库区库存");

        cell.Font.Bold           = true;
        cell.HorizontalAlignment = HorizontalAlignments.Centered;
        cell                     = cells.Add(2, 1, "产品代码");
        cell.Font.Bold           = true;
        cell.HorizontalAlignment = HorizontalAlignments.Centered;
        cell                     = cells.Add(2, 2, "产品名称");
        cell.Font.Bold           = true;
        cell.HorizontalAlignment = HorizontalAlignments.Centered;
        cell                     = cells.Add(2, 3, "单位编码");
        cell.Font.Bold           = true;
        cell.HorizontalAlignment = HorizontalAlignments.Centered;
        cell                     = cells.Add(2, 4, "单位名称");
        cell.Font.Bold           = true;
        cell.HorizontalAlignment = HorizontalAlignments.Centered;
        cell                     = cells.Add(2, 5, "库存数量");
        cell.Font.Bold           = true;
        cell.HorizontalAlignment = HorizontalAlignments.Centered;
        cell.HorizontalAlignment = HorizontalAlignments.Centered;
        cell                     = cells.Add(2, 6, "库区名称");
        cell.Font.Bold           = true;
        cell.HorizontalAlignment = HorizontalAlignments.Centered;
        foreach (DataRow row in dt.Rows)
        {
            cells.Add(rowIndex + 2, 1, "" + row["CURRENTPRODUCT"] + "");
            cells.Add(rowIndex + 2, 2, "" + row["PRODUCTNAME"] + "");
            cells.Add(rowIndex + 2, 3, "" + row["UNITCODE"] + "");
            cells.Add(rowIndex + 2, 4, "" + row["UNITNAME"] + "");
            cells.Add(rowIndex + 2, 5, "" + row["QUANTITY"] + "");
            cells.Add(rowIndex + 2, 6, "" + row["AREANAME"] + "");

            rowIndex++;
        }

        cell.HorizontalAlignment = HorizontalAlignments.Centered;
        string file = System.Web.HttpContext.Current.Server.MapPath("~/Excel/");

        xls.Save(file);
        //xls.Send();
        return(fileName);
    }
        public void CreateWorksheetWithDataTable()
        {
            DataSourceConverter <DataRow> converter = new DataSourceConverter <DataRow>();

            converter.Fields.Add(new AdapterBoundField <DataRow>("Name", "Character Name"));
            converter.Fields.Add(new AdapterBoundField <DataRow>("Age", "Age", "{0:###}"));
            XlsDocument doc = new XlsDocument();

            converter.CreateWorksheet(doc, _data, _data.TableName);

            Assert.AreEqual(1, doc.Workbook.Worksheets.Count);
            ValidateWorksheetFromDataTable(doc.Workbook.Worksheets[0], _data);
        }
Exemple #31
0
        /// <summary>
        /// Populates an xls document from a <see cref="DataSet"/>
        /// </summary>
        /// <param name="dataset">Source <see cref="DataSet"/> </param>
        /// <param name="document">Document to populate with the data.</param>
        /// <returns><see cref="XlsDocument"/> containg the data from the <see cref="DataSet"/>.</returns>
        public XlsDocument CreateDocument(XlsDocument document, DataSet dataset)
        {
            document = document ?? new XlsDocument();
            if (_tableAdapters == null || _tableAdapters.Count == 0)
            {
                _tableAdapters = CreateDefaultAdapters(dataset);
            }

            for (int i = 0; i < _tableAdapters.Count; i++)
            {
                _tableAdapters[i].PopulateWorksheet(document, null, dataset.Tables[i], dataset.Tables[i].TableName);
            }

            return document;
        }
        public void WithCustomConverters()
        {
            DataSetConverter converter = new DataSetConverter();
            DataSourceConverter<DataRow> table1Converter = new DataSourceConverter<DataRow>();
            table1Converter.Fields.Add(new AdapterBoundField<DataRow>("Name", "Character Name"));
            table1Converter.Fields.Add(new AdapterBoundField<DataRow>("Age", "Age", "{0:###}"));
            converter.TableAdapters.Add(table1Converter);
            converter.TableAdapters.Add(DataSetConverter.CreateDefaultDataTableConverter(_data.Tables[1]));
            XlsDocument doc = new XlsDocument();

            converter.CreateDocument(doc, _data);

            Assert.AreEqual(_data.Tables.Count, doc.Workbook.Worksheets.Count);
            DataSourceConverterTest.ValidateWorksheetFromDataTable(doc.Workbook.Worksheets[0], _data.Tables[0]);
            ValidateSheetFromDataTable(doc.Workbook.Worksheets[1], _data.Tables[1]);
        }
        public void OnBoundField_CellDataBoundCalled()
        {
            XlsDocument doc = new XlsDocument();
            Worksheet sheet = doc.Workbook.Worksheets.Add("Test");
            Row row = sheet.Rows.AddRow(1);
            Cell cell = sheet.Cells.Add(1, 1);

            AdapterBoundField<int> field = new AdapterBoundField<int>("test");
            field.CellDataBound = TestCellDataBound;
            field.OnBoundField(this, cell, row, 50);

            Assert.IsNotNull(_storedArgs, "event not called");
            Assert.IsNotNull(_storedSender, "event not called");
            Assert.AreEqual(this, _storedSender);
            Assert.AreEqual(50, _storedArgs.DataItem);
            Assert.AreEqual(cell, _storedArgs.Cell);
            Assert.AreEqual(row, _storedArgs.Row);
        }
        public void WithDefaultConverters()
        {
            DataSetConverter converter = new DataSetConverter();
            XlsDocument doc = new XlsDocument();

            converter.CreateDocument(doc, _data);

            Assert.AreEqual(_data.Tables.Count, doc.Workbook.Worksheets.Count);

            for (int i = 0; i < doc.Workbook.Worksheets.Count; i++)
            {
                Worksheet worksheet = doc.Workbook.Worksheets[i];
                Assert.AreEqual(_data.Tables[i].TableName, worksheet.Name);

                // validte header row
                ValidateSheetFromDataTable(worksheet, _data.Tables[i]);
            }
        }