Excel管理控件Aspose.Cells开发者指南(三):保存Excel文件的不同方法
Aspose.Cells for .NET是Excel电子表格编程API,可加快电子表格管理和处理任务,支持构建具有生成,修改,转换,呈现和打印电子表格功能的跨平台应用程序。
【下载体验Aspose.Cells for .NET最新版】
在接下来的系列教程中,将为开发者带来Aspose.Cells for .NET的一系列使用教程,例如关于加载保存转换、字体、渲染、绘图、智能标记等等。
第一章:加载,保存,转换和管理
▲第三节:保存文件的不同方法
Aspose.Cells提供了Workbook表示Microsoft Excel文件的内容,并提供了使用Excel文件所需的属性和方法。本Workbook类提供了Save用于保存Excel文件的方法。该Save方法有许多重载,用于以不同方式保存文件。
将文件保存到某个位置
要将文件保存到存储位置,请SaveFormat在调用Workbook对象的Save方法时指定文件名(包含存储路径)和所需的文件格式(从枚举中)。
// 文档目录的路径。 string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); string filePath = dataDir + "Book1.xls"; //加载源工作簿 Workbook workbook = new Workbook(filePath); //以Excel 97?2003格式保存 workbook.Save(dataDir + ".output.xls"); // OR workbook.Save(dataDir + ".output..xls", new XlsSaveOptions(SaveFormat.Excel97To2003)); //以Excel2007 xlsx格式保存 workbook.Save(dataDir + ".output.xlsx", SaveFormat.Xlsx); //以Excel2007 xlsb格式保存 workbook.Save(dataDir + ".output.xlsb", SaveFormat.Xlsb); //以ODS格式保存 workbook.Save(dataDir + ".output.ods", SaveFormat.ODS); //以Pdf格式保存 workbook.Save(dataDir + ".output.pdf", SaveFormat.Pdf); //以Html格式保存 workbook.Save(dataDir + ".output.html", SaveFormat.Html); //以SpreadsheetML格式保存 workbook.Save(dataDir + ".output.xml", SaveFormat.SpreadsheetML);
将工作簿保存为文本或CSV格式
对于文本格式(例如TXT,TabDelim,CSV等),默认情况下,Microsoft Excel和Aspose.Cells仅保存活动工作表的内容。以下代码示例说明如何将整个工作簿保存为文本格式。使用任意数量的工作表加载源工作簿,该工作簿可以是任何Microsoft Excel或OpenOffice电子表格文件(因此XLS,XLSX,XLSM,XLSB,ODS等)。
执行代码时,它会将工作簿中所有工作表的数据转换为TXT格式。可以修改相同的示例以将文件保存为CSV。默认情况下,TxtSaveOptions.Separator是逗号,因此如果保存为CSV格式,请不要指定分隔符。
//文档目录的路径。 string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); //加载源工作簿 Workbook workbook = new Workbook(dataDir + "book1.xls"); // 0字节数组 byte[] workbookData = new byte[0]; //文本保存选项。您可以使用任何类型的分隔符 TxtSaveOptions opts = new TxtSaveOptions(); opts.Separator = '\t'; //在工作簿数据数组中以文本格式复制每个工作表数据 for (int idx = 0; idx < workbook.Worksheets.Count; idx++) { // 将活动工作表保存为文本格式 MemoryStream ms = new MemoryStream(); workbook.Worksheets.ActiveSheetIndex = idx; workbook.Save(ms, opts); //将工作表数据保存到工作表数据数组中 ms.Position = 0; byte[] sheetData = ms.ToArray(); //将此工作表数据合并到工作簿数据数组中 byte[] combinedArray = new byte[workbookData.Length + sheetData.Length]; Array.Copy(workbookData, 0, combinedArray, 0, workbookData.Length); Array.Copy(sheetData, 0, combinedArray, workbookData.Length, sheetData.Length); workbookData = combinedArray; } // 将整个工作簿数据保存到文件中 File.WriteAllBytes(dataDir + "out.txt", workbookData);
使用自定义分隔符保存文本文件
文本文件包含没有格式的电子表格数据。该文件是一种纯文本文件,可以在其数据之间包含一些自定义分隔符。
//文档目录的路径。 string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); string filePath = dataDir + "Book1.xlsx"; //创建一个Workbook对象并从其路径中打开该文件 Workbook wb = new Workbook(filePath); //实例化文本文件的保存选项 TxtSaveOptions options = new TxtSaveOptions(); //指定分隔符 options.Separator = Convert.ToChar(";"); //使用选项保存文件 wb.Save(dataDir + "output.csv", options);
将文件保存到流
要将文件保存到流,请创建一个MemoryStream或FileStream对象,并通过调用该Workbook对象的Save方法将该文件保存到该流对象。SaveFormat调用Save方法时使用枚举指定所需的文件格式。
//文档目录的路径。 string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); string filePath = dataDir + "Book1.xlsx"; //加载源工作簿 Workbook workbook = new Workbook(filePath); FileStream stream = new FileStream(dataDir + "output.xlsx", FileMode.CreateNew); workbook.Save(stream, new XlsSaveOptions(SaveFormat.Xlsx)); stream.Close();
*想要购买Aspose.Cells for .NET正版授权的朋友可以了解详情哦~
欢迎加入ASPOSE技术交流QQ群,各类资源及时分享,技术问题交流讨论!(扫描下方二维码加入群聊)