将工作表从Excel文件复制到新的Excel文件

我有一些Excel文件,每个文件只有一张工作表,当我尝试将这些工作表复制到新的Excel时遇到问题,我遇到了以下两个异常:

异常错误。

错误消息:流不支持阅读。

详细信息:

在System.IO.FileStream.Read(字节[]数组,Int32偏移量,Int32计数)
在ICSharpCode.SharpZipLib.Zip.Compression.Streams.InflaterInputBuffer.Fill()
在ICSharpCode.SharpZipLib.Zip.Compression.Streams.InflaterInputBuffer.ReadLeByte()
在ICSharpCode.SharpZipLib.Zip.Compression.Streams.InflaterInputBuffer.ReadLeInt()
在ICSharpCode.SharpZipLib.Zip.ZipInputStream.GetNextEntry()
在NPOI.OpenXml4Net.Util.ZipInputStreamZipEntrySource..ctor(ZipInputStream inp)
在NPOI.OpenXml4Net.OPC.ZipPackage..ctor(流文件流,Packageaccess访问权限)
在NPOI.OpenXml4Net.OPC.OPCPackage.Open(Stream in1)中
在NPOI.Util.PackageHelper.Open(Stream is1)
在NPOI.XSSF.UserModel.XSSFWorkbook..ctor(Stream is1)
在MetroSet_UI_Example.Form1.metroSetButton1_Click(对象发送方,EventArgs e)

第二个例外是:

System.NullReferenceException:“对象引用未设置为对象的实例。”

用于读取并生成新文件的按钮:

private void metroSetButton1_Click(object sender,EventArgs e)
{
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        appuiListBox.Items.Clear();
        appuiGridView.Rows.Clear();

        try
        {
            String appuiName = "";
            XSSFSheet sheet = null;
            //XSSFWorkbook workbookMerged = new XSSFWorkbook(new FileStream("MergedAppuis.xlsx",FileMode.Append,Fileaccess.Write));
            XSSFWorkbook workbookMerged = new XSSFWorkbook();

            foreach (String appui in openFileDialog1.FileNames)
            {
                var fileExtension = Path.GetExtension(appui);

                if(fileExtension == ".xlsx")
                {
                    using (var fs = new FileStream(appui,FileMode.Open,Fileaccess.Read))
                    {
                        XSSFWorkbook wb = new XSSFWorkbook(fs);
                        sheet = (XSSFSheet)wb.GetSheetat(0);
                        //((XSSFSheet)wb.GetSheetat(0)).CopyTo(workbookMerged,sheet.GetRow(25).getcell(0).StringCellValue,true,true);
                        sheet.CopyTo(workbookMerged,"5454",true);
                        //MessageBox.Show(((XSSFSheet)wb.GetSheetat(0)).SheetName);
                    }
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show($"Exception error.\n\nError message: {ex.Message}\n\n" +
            $"Details:\n\n{ex.StackTrace}");
        }
    }
}
abc121212121212 回答:将工作表从Excel文件复制到新的Excel文件

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2641235.html

大家都在问