예제 #1
0
파일: MainForm.cs 프로젝트: lgorny/Poxls
        private async void convertFileButton_Click(object sender, EventArgs e)
        {
            var dialog = new System.Windows.Forms.OpenFileDialog();

            if (conversionType.SelectedIndex == 0) //PO
            {
                dialog.Filter = "PO Files|*.po";
            }
            else
            {
                dialog.Filter = "Excel Files|*.xlsx";
            }

            if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                var progressHandler = new Progress <string>(value =>
                {
                    logsText.AppendText(value + Environment.NewLine);
                    logsText.Select(logsText.TextLength - 1, 0);
                    logsText.ScrollToCaret();
                });

                var po = new POFormat();
                await po.Read(dialog.FileName, progressHandler);

                var xlsx = new XLSFormat(po.Entries, po.MetaData);
                xlsx.Write(Path.GetDirectoryName(dialog.FileName) + Path.DirectorySeparatorChar + Path.GetFileNameWithoutExtension(dialog.FileName) + ".xlsx", progressHandler);
            }
        }
예제 #2
0
        private static volatile object _sync = new object(); // NPOI has MT issues

        public XLSLoader(string password = null, XLSFormat format = XLSFormat.NPOI)
        {
            _password = password;
            _format   = format;
        }