首页 > 其他分享 >.NET NPOI 使用HSSFWorkbook,CopyTo复制模版sheet

.NET NPOI 使用HSSFWorkbook,CopyTo复制模版sheet

时间:2024-06-12 10:55:34浏览次数:15  
标签:Excel sheet string 模版 HSSFWorkbook NPOI ds

HSSFWorkbook是生成xls文件,旧版的Excel

需求是设置一个模版Excel,每次使用时,重新生成一个Excel,拷贝模版的sheet加入到新生成的Excel中

//假设你的数据源为ds,新生成的文件导出地址path 
public static void ExportE0092(DataSet ds string path)
{
    using (FileStream fileStream = new FileStream(path, FileMode.Create))
    {
        try
        {
            //用于获取当前工作目录的完整路径
            string executingAssemblyPath = Environment.CurrentDirectory;
            //当前工作目录的上级
            string directoryName = Path.GetDirectoryName(executingAssemblyPath);
            //当前工作目录的上上级
            string parentDirectoryName = Directory.GetParent(directoryName).FullName;
            //拼接你的模版文件地址
            string excelPath = Path.Combine(parentDirectoryName, "file\\Template\\文件名.xls");
            //打开文件
            FileStream excelModel = new FileStream(excelPath, FileMode.Open, FileAccess.Read);
            //模版文件
            HSSFWorkbook modelbook = new HSSFWorkbook(excelModel);
            //模版文件的sheet,使用HSSFSheet 
            HSSFSheet sourceSheet = modelbook.GetSheetAt(0) as HSSFSheet;

            //新建一个excel
            HSSFWorkbook workbook = new HSSFWorkbook();
            //循环数据源创建sheet,有几个DataTable,创建几个sheet
            for (var i = 0; i < ds.Tables.Count; i++)
            {
                string nameStr = ds.Tables[i].TableName;
                DataTable hkTable = ds.Tables[i];

                //创建一个sheet
                sourceSheet.CopyTo(workbook, nameStr, true, true);
                //sheet就是你新建的Excel中刚拷贝过去的sheet
                ISheet sheet = workbook.GetSheet(nameStr);

                //第一行,标题
                IRow row0 = sheet.GetRow(0);
                row0.GetCell(0).SetCellValue("赋值");

                //…………下面就是你在sheet中的赋值信息
            }
            //写入流
            workbook.Write(fileStream);
            //文件流关闭
            excelModel.Close();
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
    }
}

此方法可以将sheet中的表格设置样式都拷贝出来,但是我测试只能拷贝12个sheet,多于12个后开始表格样式丢失

少于12个sheet的宝子可以用用,但是多了还是不行,有解决方法的宝子评论区可以指教一下,多多交流,哈哈哈

标签:Excel,sheet,string,模版,HSSFWorkbook,NPOI,ds
From: https://www.cnblogs.com/guangfangxiaokeai/p/18243519

相关文章

  • JoinPoint和ProceedingJoinPoint区别
    在Java中,JoinPoint和ProceedingJoinPoint是Aspect-OrientedProgramming(AOP)的概念,通常与AspectJ框架或SpringAOP一起使用。JoinPoint表示一个连接点,即程序执行中的一个具体点,如方法调用或异常处理。ProceedingJoinPoint是JoinPoint的一个子接口,它表示一个可以继续执行......
  • WPS JS宏删除、导入、导出Sheet里的图片
    今天分享WPS表格中的图片操作方法,三个问题:1.如何删除表中所有图片;2.如何将表中所有图片批量导出到指定文件夹并重新命名;3.如何将指定路径下的图片批量导入表中,并置于何时的位置。 一、如何删除表中所有图片functiondeletePic(){ //获取当前Sheet表对象 varapp=Appl......
  • Python神技:pd.read_excel怎样读取多sheet页数据
    哈喽,大家好,我是木头左!今天,我要分享的是一个非常实用的Python技能,那就是如何在Python的pandas库中使用pd.read_excel函数来读取Excel文件的多个sheet页数据。一、为什么要读取Excel的多个sheet页数据?在数据分析和处理的过程中,经常需要处理包含多个sheet页的Excel文件。比如,你......
  • Google使用AI改进了 Sheets;开源视觉语言模型llama3v;开源情绪语音模型ChatTTS;
    ✨1:GooglehasimprovedSheetswithAI.Google使用AI改进了Sheets您可以使用Gemini处理您的数据并将其变成老师。优化您的数据Gemini了解您的数据并提出改进建议。例如,它可以将重复数据转换为更实用的下拉框。解释数据通过单击双子座图标,您可以自动获......
  • 浅析AOP中的JoinPoint的使用
    JoinPoint可以让我们获取到哪些信息JoinPoint接口提供了多个方法,允许我们在切面中获取与连接点(即目标方法执行点)相关的信息。以下是一些常用的方法,以及它们能够提供的信息:getArgs():获取目标方法的参数列表。这些参数是在方法调用时传递给方法的实际参数。getSignature()......
  • NPOI创建word文档,使用unicode写入打勾的小方框,word2021显示异常问题解决
    word2019查看NPOI创建的word中打勾方框,显示正常,但是word2021显示就变成下面这个样子了,应该是word2021对这个特殊字符的渲染导致的 想要普通的效果,白色背景黑边黑勾的效果,换一个字体可以解决 c# 代码XWPFDocumentdocument=newXWPFDocument();XWPFParagraphparagrap......
  • openpyxl Worksheet
    worksheet说明Worksheet代表一个Excel工作表。worksheet初始化fromopenpyxlimportWorkbook#创建一个新的Excel工作簿wb=Workbook()#获取第一个工作表worksheet=wb.active#保存工作簿到指定的文件名wb.save("execl_test.xlsx")#关闭工作簿wb.close(......
  • CSS Cascading Style Sheet
    cs01CSSSyntaxcs02CSSSelectorscs03CSSInclusioncs04CSSMeasurementUnitscs05CSSPaddingsProperty  REFhttps://www.tutorialspoint.com/css/index.htm-https://www.w3schools.com/css/default.asp ......
  • HTML 13 - Style Sheet
     CSS,orCascadingStyleSheets,isatoolthatdefineshowwebdocumentslookonscreensorinprint.Sinceitsintroductionin1994,theW3Chasencouragedtheuseofstylesheetsforwebdesign.CSSletsyoucontrolthepresentationofyourcontent,w......
  • PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
    参考:https://blog.csdn.net/jackbon8/article/details/1079406381.导出表格<?phpnamespaceapp#给类文件的命名空间起个别名usePhpOffice\PhpSpreadsheet\Spreadsheet;#Xlsx类将电子表格保存到文件usePhpOffice\PhpSpreadsheet\Writer\Xlsx;......