예제 #1
0
        /// <summary>
        /// 导出
        /// </summary>
        /// <typeparam name="T">泛型</typeparam>
        /// <param name="excelBookInfo">需要写入Excel的WorkBook</param>
        /// <returns>返回HSSFWorkbook</returns>
        public static HSSFWorkbook Export <T>(this ExcelWorkBookInfo excelBookInfo)
        {
            GuardUtils.NotNull(excelBookInfo, nameof(excelBookInfo));
            var book = ToHssfWorkbook <T>(excelBookInfo.Data, excelBookInfo.SheetName, excelBookInfo.ChoiseStr, excelBookInfo.IsShowSequenced ?? true);

            return(book);
        }
예제 #2
0
        /// <summary>
        /// 生成ExcelWorkBookInfo
        /// </summary>
        /// <param name="dts">数据dataTable</param>
        /// <param name="sheetName">sheet名称</param>
        /// <param name="fileName">文件名</param>
        /// <param name="choiseStr">选择列的字符串</param>
        /// <returns>ExcelWorkBookInfo对象</returns>
        private static ExcelWorkBookInfo ConverteExcelWorkBook(List <DataTable> dts, string sheetName, string fileName, string choiseStr)
        {
            var sheetNames = new List <string>();
            var choiseStrs = new List <string>();

            for (int i = 0; i < dts.Count; i++)
            {
                if (i > 0)
                {
                    sheetNames.Add(sheetName + (i + 1));
                }
                else
                {
                    sheetNames.Add(sheetName);
                }

                choiseStrs.Add(choiseStr);
            }

            var book = new ExcelWorkBookInfo()
            {
                FileName  = fileName,
                SheetName = sheetNames.ToArray(),
                Data      = dts,
                ChoiseStr = choiseStrs.ToArray()
            };

            return(book);
        }
예제 #3
0
        /// <summary>
        /// 文件字节
        /// </summary>
        /// <typeparam name="T">泛型</typeparam>
        /// <param name="excelBookInfo">需要写入Excel的WorkBook</param>
        /// <returns>返回二进制数据</returns>
        public static byte[] ToBytes <T>(this ExcelWorkBookInfo excelBookInfo)
        {
            GuardUtils.NotNull(excelBookInfo, nameof(excelBookInfo));
            var book = ToHssfWorkbook <T>(excelBookInfo.Data, excelBookInfo.SheetName, excelBookInfo.ChoiseStr, excelBookInfo.IsShowSequenced ?? true);

            //文件字节
            using (var file = new MemoryStream())
            {
                book.Write(file);
                return(file.ToArray());
            }
        }
예제 #4
0
        private void ReadExcelFileInfo(string path)
        {
            ExcelWorkBookInfo fileInfo = null;

            try
            {
                using (UsingExcel xls = new UsingExcel())
                {
                    fileInfo = xls.ReadExcelFileInfo(path);
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка чтения Excel"); }
            this.OpenedExcelFile = fileInfo;
        }
예제 #5
0
        private void lblFileName_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (this.BWorker != null && BWorker.IsBusy)
            {
                MessageBox.Show("Дождитесь завершения операции.", "Программа в процессе..", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            string path = ExcelStatic.OpenExcelFileDialog();

            if (!string.IsNullOrEmpty(path))
            {
                ReadExcelFileInfo(path);
            }
            else
            {
                OpenedExcelFile = null;
            }
        }
예제 #6
0
 public MainForm()
 {
     InitializeComponent();
     OpenedExcelFile = null;
 }