电传文件处理免费下载30天试用版

导入/加载和导出/保存RadSpreadProcessing工作簿

产品版本 产品 作者
2021.2.615 RadSpreadProcessing 彼得Milchev

描述

独立于ui跨平台远程文档处理库允许你创建进口修改出口文档而不依赖外部依赖关系Adobe Acrobat微软办公软件

RadSpreadProcessing图书馆使用各种FormatProviders以支持处理不同的文件类型,例如.xslx/xls/. csv. txt. pdf。每种格式及其提供商的广泛链接列表可以在这里找到:

解决方案

所有FormatProviders实现IWorkbookFormatProviderIBinaryWorkbookFormatProvider接口,所以它们都有相同的Import/Export方法byte []数组中。

本文展示了可以使用工作簿的最常见场景的示例。的示例中的目录下面的部分包含了完整的示例列表,以方便和快速导航。

中的代码片段示例部分使用XLSX格式提供程序用于演示目的。的任何格式提供程序都可以替换它IWorkbookFormatProviderIBinaryWorkbookFormatProvider接口,这取决于您是否正在使用或者一个byte []数组中。的格式提供程序管理器可以帮助您根据文件扩展名选择最佳提供商。

teleerik文档处理库是独立于ui跨平台所以有些例子可能只适用于桌面应用程序或ASP。网络项目。

例子

目录表

文件为Byte[]数组

从Byte[]数组加载工作簿

Telerik.Windows.Documents.Spreadsheet.Model.Workbook工作簿;// XLSX格式提供程序用于演示目的,可以用实现IBinaryWorkbookFormatProvider接口的任何格式提供程序替换IBinaryWorkbookFormatProvider formatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider();var path = "MyWorkbook.xlsx";// var path = Server.MapPath("~/Resources/FromWorkbook.pdf");//仅适用于ASP。. NET project //https://docs.microsoft.com/en-us/dotnet/api/system.io.file.readallbytes?view=net-5.0 byte[] fileAsByteArray = File.ReadAllBytes(path);workbook = formatProvider.Import(fileAsByteArray);

将工作簿保存为Byte[]数组

// XLSX格式提供程序用于演示目的,可以用实现IBinaryWorkbookFormatProvider接口的任何格式提供程序替换IBinaryWorkbookFormatProvider formatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider();//使用你自己的工作簿实例byte[] bytesFromWorkbook = formatProvider.Export(Workbook);//将文件保存在本地系统或使用字节数组下载或保存在DB var path = "MyWorkbook.xlsx";// var path = Server.MapPath("~/Resources/FromWorkbook.pdf");//仅适用于ASP。. NET项目文件。WriteAllBytes(路径,bytesFromWorkbook);

文件流或内存流

作为文件流或内存流从文件加载工作簿

Telerik.Windows.Documents.Spreadsheet.Model.Workbook工作簿;// XLSX格式提供程序用于演示目的,可以被任何实现IWorkbookFormatProvider接口的格式提供程序替换IWorkbookFormatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider();using (Stream input = new MemoryStream(fileAsByteArray)) //using (Stream input = new FileStream(path, FileMode.Open)) {workbook = formatProvider.Import(input);}

将工作簿保存到文件流或内存流

// XLSX格式提供程序用于演示目的,可以被任何实现IWorkbookFormatProvider接口的格式提供程序替换IWorkbookFormatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider();var path = "MyWorkbook.pdf";// var path = Server.MapPath("~/MyWorkbook.pdf");//仅适用于ASP。. NET项目使用(MemoryStream输出= new MemoryStream()) //使用(Stream输出= new FileStream(path, FileMode.Create)){//在这里使用您自己的Workbook实例formatProvider。出口(工作簿、输出);}

另存工作簿为PDF

var pdfFormatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.Pdf.PdfFormatProvider();// var path = Server.MapPath("~/Resources/FromWorkbook.pdf");//仅适用于ASP。. NET项目var path = "MyWorkbook.pdf";//选项1:使用FileStream使用(流输出= File.OpenWrite(路径)){//在这里使用您自己的工作簿实例pdfFormatProvider。出口(工作簿、输出);} //选项2:使用Byte[] array var path = "MyWorkbook.xlsx";// var path = Server.MapPath("~/MyWorkbook.pdf");//仅适用于ASP。. NET项目字节[]pdfBytes = pdfFormatProvider.Export(工作簿);文件。WriteAllBytes(path, pdfBytes);

上传文件

从上传的文件加载工作簿

* Web应用程序特定的例子

//public Workbook LoadFromUploadedFile(HttpPostedFile uploadedFile) //通用上传文件类型public Workbook LoadFromUploadedFile(uploadedFile uploadedFile) // Telerik RadAsyncUpload. NET AJAX特定的上传文件类型{Telerik.Windows.Documents.Spreadsheet.Model.Workbook;// XLSX格式提供程序用于演示目的,可以被任何实现IWorkbookFormatProvider接口的格式提供程序替换IWorkbookFormatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider();workbook = formatProvider.Import(uploadedFile.InputStream);返回工作簿;}

数据库

从SQL数据库加载工作簿

下面示例中使用的SQL表具有FileContentvarbinary (MAX)

// XLSX格式提供程序用于演示目的,可以被任何实现IBinaryWorkbookFormatProvider接口的格式提供程序替代IBinaryWorkbookFormatProvider formatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider();// ReadFileFromDatabaseAsByteArray是在下面的代码片段中声明的演示方法var fileAsByteArray = ReadFileFromDatabaseAsByteArray(id);Telerik.Windows.Documents.Spreadsheet.Model.Workbook工作簿;workbook = formatProvider.Import(fileAsByteArray);
ReadFileFromDatabaseAsByteArray(string id) {var connectionString = system . configuration . configurationmanager .ConnectionString ["WorkbookTestsConnectionString"].ConnectionString;使用(var cn = new SqlConnection() {ConnectionString = ConnectionString}) {const string语句= "SELECT id, [FileContent], FileName FROM Attachments WHERE id = @id;";使用(var cmd = new SqlCommand() {Connection = cn, CommandText = statement}) {cmd. parameters。AddWithValue(“@ id”,文件名);cn.Open ();using (var reader = cmd. executerreader ()) {if (reader. hasrows) {reader. read ();// blob字段var fieldOrdinal = reader.GetOrdinal("FileContent");Var blob = new byte[(reader.)]。GetBytes(fieldOrdinal, 0, null, 0, int.MaxValue))];读者。GetBytes(fieldOrdinal, 0, blob, 0, blob. length); return blob; } } return null; } } }

将工作簿保存到SQL数据库

// XLSX格式提供程序用于演示目的,可以用实现IBinaryWorkbookFormatProvider接口的任何格式提供程序替换IBinaryWorkbookFormatProvider formatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider();byte[] bytesFromWorkbookForSqlSave = formatProvider.Export(workbook);// InsertFileAsByteArrayInDatabase是下面代码段声明的一个演示方法bool issuccess = InsertFileAsByteArrayInDatabase(bytesFromWorkbookForSqlSave, "WorkbookForSqlSave.xlsx");
公共bool InsertFileAsByteArrayInDatabase(byte[] fileBytes, string fileName) {var connectionString = system . configuration . configurationmanager .ConnectionString ["WorkbookTestsConnectionString"].ConnectionString;使用(var cn = new SqlConnection() {ConnectionString = ConnectionString}) {const string语句= "INSERT INTO Attachments (FileContent,FileName) VALUES (@FileContent,@FileName)";使用(var cmd = new SqlCommand() {Connection = cn, CommandText = statement}) {cmd. parameters。Add(“@FileContent SqlDbType。VarBinary fileBytes.Length)。Value = fileBytes;cmd.Parameters。AddWithValue(“@FileName”,文件名);cn.Open ();cmd.ExecuteNonQuery ();返回true;}}

Web服务

从Web加载工作簿

Telerik.Windows.Documents.Spreadsheet.Model.Workbook workbookFromWebService;// XLSX格式提供程序用于演示目的,可以被任何实现IWorkbookFormatProvider接口的格式提供程序替换IWorkbookFormatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider();WebClient = new WebClient();使用(流webFileStream = webClient。OpenRead(new Uri(url)) {workbookFromWebService = formatProvider.Import(webFileStream);}返回workbookFromWebService;}

Base64字符串

从Base64字符串加载工作簿

// XLSX格式提供程序用于演示目的,可以用实现IBinaryWorkbookFormatProvider接口的任何格式提供程序替换IBinaryWorkbookFormatProvider formatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider();byte[] fileAsByteArray = Convert.FromBase64String(fileAsBase64String);Workbook = formatProvider.Import(fileAsByteArray);

将工作簿保存为Base64字符串

// XLSX格式提供程序用于演示目的,可以用实现IBinaryWorkbookFormatProvider接口的任何格式提供程序替换IBinaryWorkbookFormatProvider formatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider();字符串base64FromByteArray;//使用你自己的工作簿实例byte[] bytesFromWorkbook = formatProvider.Export(Workbook);string base64FromByteArray = Convert.ToBase64String(bytesFromWorkbook);

数据表

从数据表加载工作簿

public Workbook LoadFromDataTable(DataTable DataTable){//将数据表转换为Workbook DataTableFormatProvider provider = new DataTableFormatProvider();Workbook = new Workbook();Worksheet = workbook.Worksheets.Add();提供者。进口(数据表、工作表);返回工作簿;}

将工作簿保存到数据表

DataTableFormatProvider provider = new DataTableFormatProvider();//在这里使用你自己的工作簿实例并选择所需的工作表DataTable dataTableFromWorkbook = provider.Export(Workbook . worksheets [0]);

下载

// XLSX格式提供程序用于演示目的,可以用实现IBinaryWorkbookFormatProvider接口的任何格式提供程序替换IBinaryWorkbookFormatProvider formatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider();//使用你自己的工作簿实例byte[] fileToDownloadAsByteArray = formatProvider.Export(工作簿);//下面代码段中声明的演示方法WriteFileToResponse(fileToDownloadAsByteArray);
private void WriteFileToResponse(byte[] content) {var fileName = "MyWorkbook.xlsx";// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types var contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";var contentDisposition = string.Format("附件;文件名={0}”,文件名);Response.Clear ();//如果使用不同的文件类型,内容可能需要调整。ContentType = ContentType;Response.Headers.Remove(“附加”);响应。AppendHeader(“附加”,contentDisposition);Response.BinaryWrite(内容); Response.End(); }

OpenFileDialog

*桌面应用程序特定的例子

OpenFileDialog = new Microsoft.Win32.OpenFileDialog();openFileDialog。Filter = Telerik.Windows.Controls.Spreadsheet.Utilities.FileDialogsHelper.GetOpenFileDialogFilter();// XLSX格式提供程序用于演示目的,可以被任何实现IWorkbookFormatProvider接口的格式提供程序替换IWorkbookFormatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider();if (openFileDialog.ShowDialog() == true) {try {using (Stream input = openFileDialog.OpenFile()) {workbook = formatProvider.Import(input);}} catch (IOException ex){抛出新的IOException("文件无法打开。它可能被另一个应用程序锁定了。}}

SaveFileDialog

*桌面应用程序特定的例子

Telerik.Windows.Documents.Spreadsheet.Model.Workbook = new Telerik.Windows.Documents.Spreadsheet.Model.Workbook();workbook.Worksheets.Add ();SaveFileDialog = new SaveFileDialog();// CSV格式提供程序用于演示目的,可以替换为Telerik.Windows.Documents.Spreadsheet.FormatProviders.TextBased.Csv.CsvFormatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.TextBased.Csv.CsvFormatProvider();saveFileDialog。Filter = "CSV(逗号分隔)(. CSV)|. CSV |所有文件(.)|.";if (saveFileDialog.ShowDialog() == true) {using(流输出= saveFileDialog.OpenFile()) {formatProvider. showdialog () == true)出口(工作簿、输出);}}

另请参阅

在本文中
Baidu
map