整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          ASP.NET 導出Excel和導入Excel并插入

          ASP.NET 導出Excel和導入Excel并插入數據庫

          臺拖一個Gridview,在拖一個導出excel的按鈕,給這個按鈕添加事件
          后臺代碼:

          using BLL;
          using Model;
          
          namespace Web
          {
              public partial class ExcelOperate : System.Web.UI.Page
              {
                  private StudentBLL bll=new StudentBLL();
                  protected void Page_Load(object sender, EventArgs e)
                  {
                      if (!IsPostBack)
                      {
                          Bind();
                      }
                  }
          
                  //綁定數據
                  private void Bind()
                  {
                      GridView1.DataSource=bll.GetAllStu(null);
                      GridView1.DataBind();
                  }
                  #region 導出到excel
          
                  //導出excel
                  protected void btnExcelout_Click(object sender, EventArgs e)
                  {
                      string style=@"<style> .text { mso-number-format:\@; } </script> "; //設置格式
                      Response.ClearContent();
                      Response.ContentEncoding=Encoding.GetEncoding("gbk");
                      Response.AddHeader("content-disposition", "attachment;filename=ouput.xls");
                      Response.ContentType="application/excel";
                      StringWriter sw=new StringWriter();
                      HtmlTextWriter htw=new HtmlTextWriter(sw);
                      GridView1.RenderControl(htw);
                      Response.Write(style);//注意
                      Response.Write(sw.ToString());
                      Response.End();
                  }
                  //注意:必須覆蓋此方法
                  public override void VerifyRenderingInServerForm(Control control)
                  {
                      //base.VerifyRenderingInServerForm(control);
                  }
                  //解決數字字符串顯示不完全
                  protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
                  {
                      // e.Row.Cells[3].Attributes.Add("class", "text");//在數據綁定中設置格式
                      //哪一列需要顯示文本的,加上下面這句話即可
                      e.Row.Cells[3].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
                  } 
                  #endregion
              }
          }

          頁面效果:


          導入Excel并保存到數據庫:
          前臺需要拖一個FileUpload上傳控件,一個導入excel按鈕,給其添加事件:

          //導入excel數據
                  protected void btnExcelIn_Click(object sender, EventArgs e)
                  {
                      string filepath=string.Empty;
                      string getErrormg=string.Empty;
                      DataTable dt=new DataTable();
                      if (!fuFile.HasFile)
                      {
                          Response.Write("<script>alert('請選擇你要導入的Excel文件');</script>");
                          return;
                      }
                      //獲取文件的后綴名
                      string fileExt=System.IO.Path.GetExtension(fuFile.FileName);
                      if (fileExt !=".xls")
                      {
                          Response.Write("<script>alert('文件類型錯誤!');</script>");
                          return;
                      }
                      //獲取絕對路徑
                      filepath=fuFile.PostedFile.FileName;
                      string conn="Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";Data Source=" + filepath;
                      OleDbConnection excelCon=new OleDbConnection(conn);
                      //Excel文件里面工作表名 默認為Sheet1,后面需要加上$符號[工作表名稱$]切記,不然會報錯
                      OleDbDataAdapter odda=new OleDbDataAdapter("SELECT * FROM [Sheet1$]", excelCon);
                      try
                      {
                          odda.Fill(dt);
                      }
                      catch (Exception ex)
                      {
                          Response.Write(ex.Message);
                          Response.Write("<script>alert('" + ex.Message + "!')</script>");
                      }
                      finally
                      {
                          excelCon.Close();
                          excelCon.Dispose();
                      }
                      //將數據寫到數據庫里面
                      try
                      {
                        
                          for (int i=0; i < dt.Rows.Count; i++)
                          {
                              Studnet stu=new Studnet();
                              stu.C_id=Convert.ToInt32(dt.Rows[i]["c_id"]);
                              stu.No=dt.Rows[i]["no"].ToString();
                              stu.Name=dt.Rows[i]["name"].ToString();
                              stu.Gender=dt.Rows[i]["gender"].ToString()=="男" ? true : false;
                              stu.Age=Convert.ToInt32(dt.Rows[i]["age"].ToString());
                              bll.InsertStu(stu);
                          }
          
                      }
                      catch (Exception ex)
                      {
          
                          getErrormg=ex.Message;
                          Response.Write(ex.Message);
                      }
          
                      if (getErrormg=="")
                      {
                          Response.Write("<script>alert('導入Excel文件成功!')</script>");
                          Bind();
                      }
                      else { Response.Write("<script>alert('導入Excel文件失敗!')</script>"); }
          
                  }

          Excel和導入后的頁面效果:




          數據庫在導入excel數據之前和時候的效果:



          這里要注意幾個地方,一般導出excel的時候,數字文本會把前面的0都省略掉了,這里需要注意:紅色代碼片段,導入的時候,也有個***紅紅紅色***標記碼塊要注意
          以下是前臺完整代碼:

          <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ExcelOperate.aspx.cs" Inherits="Web.ExcelOperate" %>
          
          <!DOCTYPE html>
          
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head runat="server">
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
              <title></title>
          </head>
          <body>
              <form id="form1" runat="server">
              <div>
                  <asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound"></asp:GridView>
                  <br />
                  <asp:Button ID="btnExcelout" runat="server" OnClick="btnExcelout_Click" Text="導出到Excel" />
                  <br />
                  <asp:FileUpload ID="fuFile" runat="server" />
                  <asp:Button ID="btnExcelIn" runat="server" OnClick="btnExcelIn_Click" Text="導入Excel數據" />
              </div>
              </form>
          </body>
          </html>

          以下是后臺完整代碼:

          web應用程序開發時,或許你會遇到這樣的需求,如何在 Asp.Net Core 中實現 excel 或者 word 的導入導出,在 NuGet 上有大量的工具包可以實現這樣的功能,本篇就討論下如何使用 ClosedXML 實現 Excel 數據導出。

          安裝 ClosedXML

          如果想實現 Excel 的導出功能,在 Asp.Net Core 中有很多的dll可以做到,其中的一個叫做 ClosedXML,你可以通過可視化界面 NuGet package manager 去安裝,也可以使用命令行 NuGet package manager console 執行下面命令。

          
          Install-Package ClosedXML
          

          將數據導出成 CSV 文件

          將數據導成 CSV 文件是非常簡單的,畢竟每行數據都是用 , 隔開即可,可以用 NuGet 上的 CsvExport 或者 AWright18.SimpleCSVExporter 去實現,當然你覺得自己很 ,可以親自操刀實現,下面我準備親自實現一下,先看下面定義的 Author 類。

          
          public class Author
          {
            public int Id { get; set; }
            public string FirstName { get; set; }
            public string LastName { get; set; }
          }
          

          然后塞一些數據到 authors 列表中,如下代碼所示:

          
          List<Author> authors=new List<Author>
          {
              new Author { Id=1, FirstName="Joydip", LastName="Kanjilal" },
              new Author { Id=2, FirstName="Steve", LastName="Smith" },
              new Author { Id=3, FirstName="Anand", LastName="Narayaswamy"}
          };
          

          定義一個 DownloadCommaSeperatedFile 方法,用于實現 Action 的 csv 導出功能。

          
          public IActionResult DownloadCommaSeperatedFile()
          {
              try
              {
                 StringBuilder stringBuilder=new StringBuilder();
                 stringBuilder.AppendLine("Id,FirstName,LastName");
                 foreach (var author in authors)
                 {
                     stringBuilder.AppendLine($"{author.Id},
                     {author.FirstName},{author.LastName}");
                 }
                return File(Encoding.UTF8.GetBytes
                (stringBuilder.ToString()), "text/csv", "authors.csv");
              }
              catch
              {
                 return Error();
              }
          }
          

          將數據導出成 XLSX 文件

          Excel 中的 workbook 是由若干個 worksheet 組成,下面的代碼可用來生成一個 workbook。

          
          var workbook=new XLWorkbook();
          

          接下來生成一個 worksheet,然后在 worksheet 中填一些數據,代碼如下:

          
          IXLWorksheet worksheet=workbook.Worksheets.Add("Authors");
          worksheet.Cell(1, 1).Value="Id";
          worksheet.Cell(1, 2).Value="FirstName";
          worksheet.Cell(1, 3).Value="LastName";
          for (int index=1; index <=authors.Count; index++)
          {
             worksheet.Cell(index + 1, 1).Value=authors[index - 1].Id;
             worksheet.Cell(index + 1, 2).Value=authors[index - 1].FirstName;
             worksheet.Cell(index + 1, 3).Value=authors[index - 1].LastName;
          }
          

          最后,將 workbook 轉成 內存流 (memory stream) 再通過 Controller.Action 的 FileContentResult 返回給客戶端,代碼如下:

          
          using (var stream=new MemoryStream())
          {
               workbook.SaveAs(stream);
               var content=stream.ToArray();
               return File(content, contentType, fileName);
          }
          

          下載 Excel

          下面是導出 Excel 所有的業務邏輯代碼,這個 Action 實現了 Excel 導出功能。

          
                  public IActionResult DownloadExcelDocument()
                  {
                      string contentType="application/vnd.openxmlformats-
                      officedocument.spreadsheetml.sheet";
                      string fileName="authors.xlsx";
                      try
                      {
                          using (var workbook=new XLWorkbook())
                          {
                              IXLWorksheet worksheet=            workbook.Worksheets.Add("Authors");
                              worksheet.Cell(1, 1).Value="Id";
                              worksheet.Cell(1, 2).Value="FirstName";
                              worksheet.Cell(1, 3).Value="LastName";
                              for (int index=1; index <=authors.Count; index++)
                              {
                                  worksheet.Cell(index + 1, 1).Value=                authors[index - 1].Id;
                                  worksheet.Cell(index + 1, 2).Value=                authors[index - 1].FirstName;
                                  worksheet.Cell(index + 1, 3).Value=                authors[index - 1].LastName;
                              }
                              using (var stream=new MemoryStream())
                              {
                                  workbook.SaveAs(stream);
                                  var content=stream.ToArray();
                                  return File(content, contentType, fileName);
                              }
                          }
                      }
                      catch(Exception ex)
                      {
                          return Error();
                      }
                  }
          

          這篇就是 ClosedXML 的所有內容,如果你想對 Excel 中的數據進行更加復雜的操控,可以使用 EPPlus 或者 NPOI,關于 ClosedXML 的更多內容,可參考:https://github.com/ClosedXML/ClosedXML

          譯文鏈接:https://www.infoworld.com/article/3538413/how-to-export-data-to-excel-in-aspnet-core-30.html

          更多高質量干貨:參見我的 GitHub: dotnetfly**

          能轉換:R圖和統計表轉成發表級的Word、PPT、Excel、HTML、Latex、矢量圖等

          R包export可以輕松的將R繪制的圖和統計表輸出到 Microsoft Office (Word、PowerPoint和Excel)、HTML和Latex中,其質量可以直接用于發表。

          • 你和PPT高手之間,就只差一個iSlide
          • Excel改變了你的基因名,30% 相關Nature文章受影響,NCBI也受波及


          特點

          1. 可以用命令將交互式R圖或ggplot2Latticebase R圖保存到Microsoft Word、Powerpoint或其他各種位圖或矢量格式。
          2. 完全可編輯的Powerpoint矢量格式輸出,支持手動整理繪圖布局。
          3. 統計分析的輸出保存為Excel、Word、PowerPoint、Latex或HTML文檔的表格形式。
          4. 自定義R輸出格式。

          安裝

          export包可以在Windows、Ubuntu和Mac上跨平臺運行。不過有些Mac發行版默認情況下沒有安裝cairo設備,需要自行安裝。如果Mac用戶已安裝XQuartz,這個問題就解決了,它可以從https://www.xquartz.org/免費獲得。

          官方CRAN發布 (以不能用)

          install.packages("export")

          從 Github 安裝 (推薦


          install.packages("officer")
          install.packages("rvg")
          install.packages("openxlsx")
          install.packages("ggplot2")
          install.packages("flextable")
          install.packages("xtable")
          install.packages("rgl")
          install.packages("stargazer")
          install.packages("tikzDevice")
          install.packages("xml2")
          install.packages("broom")
          install.packages("devtools")
          devtools::install_github("tomwenseleers/export")
          


          該包主要包括以下幾種轉換

          • graph2bitmap
          • graph2office
          • graph2vector
          • rgl2bitmap 轉換3D圖
          • table2office
          • table2spreadsheet
          • table2tex
          • graph2bitmap: 將當前R圖保存到bmp文件中
          • graph2png: 將當前R圖保存到png文件中
          • graph2tif: 將當前R圖保存到TIF文件中
          • graph2jpg: 將當前R圖保存為JPEG文件

          使用幫助信息如下

          graph2bitmap(x=NULL, file="Rplot", fun=NULL, type=c("PNG","JPG", "TIF"),
                  aspectr=NULL, width=NULL, height=NULL, dpi=300,scaling=100,
                  font=ifelse(Sys.info()["sysname"]=="Windows", "Arial",
                  "Helvetica")[[1]], bg="white", cairo=TRUE,
                  tiffcompression=c("lzw", "rle", "jpeg", "zip", "lzw+p", "zip+p"),
                  jpegquality=99, ...)
          
          • aspectr: 期望縱橫比。如果設置為空,則使用圖形設備的縱橫比。
          • width: 所需寬度(英寸);可以與期望的縱橫比aspectr組合。
          • height: 所需高度(英寸);可以與期望的縱橫比aspectr組合。
          • scaling: 按一定比例縮放寬度和高度。
          • font: PNG和TIFF輸出中標簽所需的字體; Windows系統默認為Arial,其他系統默認為Helvetica。
          • bg: 所需的背景顏色,例如“白色”或“透明”。
          • cairo: 邏輯,指定是否使用Cairographics導出。
          • tiffcompression: 用于TIF文件的壓縮。
          • jpegquality: JPEG壓縮的質量。

          準備開始

          安裝完 export包后,先調用該包

          library(export)
          

          用ggplot2繪圖

          library(ggplot2)
          library(datasets)
          
          x=qplot(Sepal.Length, Petal.Length, data=iris,
                  color=Species, size=Petal.Width, alpha=I(0.7))
          

          qplot()的意思是快速作圖,利用它可以很方便的創建各種復雜的圖形,其他系統需要好幾行代碼才能解決的問題,用qplot只需要一行就能完成。

          使用半透明的顏色可以有效減少圖形元素重疊的現象,要創建半透明的顏色,可以使用alpha圖形屬性,其值從0(完全透明)到1(完全不透明)。更多ggplot2繪圖見ggplot2高效實用指南 (可視化腳本、工具、套路、配色) (往期教程更有很多生物信息相關的例子)。

          鳶尾花(iris)是數據挖掘常用到的一個數據集,包含150個鳶尾花的信息,每50個取自三個鳶尾花種之一(setosa,versicolourvirginica)。每個花的特征用下面的5種屬性描述萼片長度(Sepal.Length)、萼片寬度(Sepal.Width)、花瓣長度(Petal.Length)、花瓣寬度(Petal.Width)、類(Species)。

          在console里展示數據圖 (長寬比自己調節):

          導出圖形對象

          # 需運行上面的ggplot2繪圖
          # Create a file name
          # 程序會自動加后綴
          filen <- "output_filename" # or
          # filen <- paste("YOUR_DIR/ggplot")
          # There are 3 ways to use graph2bitmap():
          ### 1. Pass the plot as an object
          graph2png(x=x, file=filen, dpi=400, height=5, aspectr=4)
          graph2tif(x=x, file=filen, dpi=400, height=5, aspectr=4)
          graph2jpg(x=x, file=filen, dpi=400, height=5, aspectr=4)
          

          導出當前繪圖窗口展示的圖

          ### 2. Get the plot from current screen device
          # 注意這個x,是運行命令,展示圖像
          x
          graph2png(file=filen, dpi=400, height=5, aspectr=4)
          graph2tif(file=filen, dpi=400, height=5, aspectr=4)
          graph2jpg(file=filen, dpi=400, height=5, aspectr=4)
          

          導出自定義函數輸出的一組圖

          ### 3. Pass the plot as a functio
          plot.fun <- function(){
            print(qplot(Sepal.Length, Petal.Length, data=iris,
                        color=Species, size=Petal.Width, alpha=0.7))
          }
          graph2png(file=filen, fun=plot.fun, dpi=400, height=5, aspectr=4)
          graph2tif(file=filen, fun=plot.fun, dpi=400, height=5, aspectr=4)
          graph2jpg(file=filen, fun=plot.fun, dpi=400, height=5, aspectr=4)
          

          轉換后的圖形:

          與Office系列的交互

          大部分圖的細節修改都是用代碼完成的,不需要后續的修飾;但如果某一些修改比較特異,不具有程序的通用性特征,或實現起來比較困難,就可以考慮后期修改。比如用AI文章用圖的修改和排版。熟悉PPT的,也可以用PPT,這時R的圖導出PPT,就要用到graph2office系列函數了。

          graph2ppt: 將當前R圖保存到Microsoft Office PowerPoint/LibreOffice Impress演示文稿中。

          graph2doc:將當前的R圖保存到Microsoft Office Word/LibreOffice Writer文檔中。

          函數參數展示和解釋

          graph2office(x=NULL, file="Rplot", fun=NULL, type=c("PPT", "DOC"),
                  append=FALSE, aspectr=NULL, width=NULL, height=NULL,scaling=100,
                  paper="auto", orient=ifelse(type[1]=="PPT","landscape", "auto"),
                  margins=c(top=0.5, right=0.5, bottom=0.5, left=0.5),
                  center=TRUE, offx=1, offy=1, upscale=FALSE, vector.graphic=TRUE, ...)
          
          • margins: 預設留白邊距向量。
          • paper: 紙張尺寸——“A5”至“A1”用于Powerpoint導出,或“A5”至“A3”用于Word輸出;默認“auto”自動選擇適合您的圖形的紙張大小。如果圖太大,無法在給定的紙張大小上顯示,則按比例縮小。
          • orient: 所需的紙張方向-“自動”,“縱向”或“橫向”; Word輸出默認為“自動”,Powerpoint默認為“橫向”。
          • vector.graphic: 指定是否以可編輯的向量DrawingML格式輸出。默認值為TRUE,在這種情況下,編輯Powerpoint或Word中的圖形時,可以先對圖形元素進行分組。如果設置為FALSE,則將該圖以300 dpi的分辨率柵格化為PNG位圖格式。(柵(shān)格化,是PS中的一個專業術語,柵格即像素,柵格化即將矢量圖形轉化為位圖。)

          同樣有3種導出方式

          # 需運行上面的ggplot2繪圖
          # Create a file name
          filen <- "output_filename" # or
          # filen <- paste("YOUR_DIR/ggplot")
          # There are 3 ways to use graph2office():
          ### 1. Pass the plot as an object
          # 導出圖形對象
          graph2ppt(x=x, file=filen)
          graph2doc(x=x, file=filen, aspectr=0.5)
          ### 2. Get the plot from current screen device
          # 導出當前預覽窗口呈現的圖
          x
          graph2ppt(file=filen, width=9, aspectr=2, append=TRUE)
          graph2doc(file=filen, aspectr=1.7, append=TRUE)
          ### 3. Pass the plot as a function
          # 導出自定義函數輸出的一系列圖
          graph2ppt(fun=plot.fun, file=filen, aspectr=0.5, append=TRUE)
          graph2doc(fun=plot.fun, file=filen, aspectr=0.5, append=TRUE)
          

          導出到office(ppt和word)中的圖形,是可編輯的:

          其它導出到ppt的例子(設置長寬比)

          graph2ppt(file="ggplot2_plot.pptx", aspectr=1.7)
          

          增加第二張同樣的圖,9英寸寬和A4長寬比的幻燈片 (append=T,追加)

          graph2ppt(file="ggplot2_plot.pptx", width=9, aspectr=sqrt(2), append=TRUE)
          

          添加相同圖形的第三張幻燈片,寬度和高度固定

          graph2ppt(file="ggplot2_plot.pptx", width=6, height=5, append=TRUE)
          

          禁用矢量化圖像導出

          graph2ppt(x=x, file=filen, vector.graphic=FALSE, width=9, aspectr=sqrt(2), append=TRUE)
          

          用圖填滿幻燈片

          graph2ppt(x=x, file=filen, margins=0, upscale=TRUE, append=TRUE)
          

          輸出矢量圖

          • graph2svg: 將當前的R圖保存為SVG格式
          • graph2pdf: 將當前的R圖保存為PDF格式
          • graph2eps: 將當前的R圖保存為EPS格式

          函數參數解釋

          graph2vector(x=NULL, file="Rplot", fun=NULL, type="SVG",aspectr=NULL,
                  width=NULL, height=NULL, scaling=100,
                  font=ifelse(Sys.info()["sysname"]=="Windows",
                  "Arial","Helvetica")[[1]], bg="white", colormodel="rgb",
                  cairo=TRUE,fallback_resolution=600, ...)
          
          • fallback_resolution: dpi中的分辨率用于柵格化不支持的矢量圖形。
          #需運行上面的ggplot2繪圖
          # Create a file name
          filen <- "output_filename" # or
          # filen <- paste("YOUR_DIR/ggplot")
          # There are 3 ways to use graph2vector():
          ### 1. Pass the plot as an object
          # 導出圖形對象
          graph2svg(x=x, file=filen, aspectr=2, font="Times New Roman",
                    height=5, bg="white")
          graph2pdf(x=x, file=filen, aspectr=2, font="Arial",
                    height=5,  bg="transparent")
          graph2eps(x=x, file=filen, aspectr=2, font="Arial",
                    height=5, bg="transparent")
          # 導出當前預覽窗口呈現的圖
          ### 2. Get the plot from current screen device
          x
          graph2svg(file=filen, aspectr=2, font="Arial",
                    height=5, bg="transparent")
          graph2pdf(file=filen, aspectr=2, font="Times New Roman",
                    height=5, bg="white")
          graph2eps(file=filen, aspectr=2, font="Times New Roman",
                    height=5, bg="white")
          # 導出自定義函數輸出的一系列圖
          ### 3. Pass the plot as a function
          graph2svg(file=filen, fun=plot.fun, aspectr=2, font="Arial",
                    height=5, bg="transparent")
          graph2pdf(file=filen, fun=plot.fun, aspectr=2, font="Arial",
                    height=5, bg="transparent")
          graph2eps(file=filen, fun=plot.fun, aspectr=2, font="Arial",
                    height=5, bg="transparent")
          

          轉換3D圖形

          rgl2png: 將當前的rgl 3D圖形保存為PNG格式。

          rgl2bitmap(file="Rplot", type=c("PNG"))
          
          # Create a file name
          filen <- tempfile("rgl") # or
          # filen <- paste("YOUR_DIR/rgl")
          # Generate a 3D plot using 'rgl'
          x=y=seq(-10, 10, length=20)
          z=outer(x, y, function(x, y) x^2 + y^2)
          rgl::persp3d(x, y, z, col='lightblue')
          # Save the plot as a png
          rgl2png(file=filen)
          # Note that omitting 'file' will save in current directory
          

          生成的3D圖形:

          將生成的3D圖形保存為PNG格式:

          輸出統計結果到表格 table2spreadsheet

          • table2excel: 導出統計輸出到Microsoft Office Excel/ LibreOffice Calc電子表格中的一個表.
          • table2csv:將統計輸出以CSV格式導出到表中(“,”表示值分隔,“。”表示小數)
          • table2csv2: 將統計輸出以CSV格式導出到表中(“;”表示值分隔,”,”表示小數)
          table2spreadsheet(x=NULL, file="Rtable", type=c("XLS", "CSV",
            "CSV2"), append=FALSE, sheetName="new sheet", digits=2,
            digitspvals=2, trim.pval=TRUE, add.rownames=FALSE, ...)
          
          • sheetName: 一個字符串,給出創建的新工作表的名稱(僅針對type==”XLS”)。它必須是惟一的(不區分大小寫),不受文件中任何現有工作表名稱的影響。
          • digits:除具有p值的列外,要顯示所有列的有效位數的數目。
          • digitspvals:具有p值的列要顯示的有效位數的數目。
          # Create a file name
          filen <- "table_aov" # or
          # filen <- paste("YOUR_DIR/table_aov")
          # Generate ANOVA output
          fit=aov(yield ~ block + N * P + K, data=npk) # 'npk' dataset from base 'datasets'
          x=summary(fit)
          # Save ANOVA table as a CSV
          ### Option 1: pass output as object
          # 輸出對象
          table2csv(x=x,file=filen, digits=1, digitspvals=3, add.rownames=TRUE)
          # 屏幕輸出導出到文件
          ### Option 2: get output from console
          summary(fit)
          table2csv(file=filen, digits=2, digitspvals=4, add.rownames=TRUE)
          # Save ANOVA table as an Excel
          # Without formatting of the worksheet
          x
          table2excel(file=filen, sheetName="aov_noformatting", digits=1, digitspvals=3, add.rownames=TRUE)
          # 更多參數
          # With formatting of the worksheet
          table2excel(x=x,file=filen, sheetName="aov_formated", append=TRUE, add.rownames=TRUE, fontName="Arial", fontSize=14, fontColour=rgb(0.15,0.3,0.75),  border=c("top", "bottom"), fgFill=rgb(0.9,0.9,0.9), halign="center", valign="center", textDecoration="italic")
          

          原始數據的表格:

          轉換格式之后的,在console中的數據:


          文件(csv和excel)中表格數據:

          導出為Word中的表,再也不用復制粘貼調格式了 table2office

          table2ppt: 導出統計輸出到Microsoft Office PowerPoint/ LibreOffice Impress演示文稿中的表

          table2doc: 將統計輸出導出到Microsoft Office Word/ LibreOffice Writer文檔中的表

          table2office(x=NULL, file="Rtable", type=c("PPT", "DOC"),
            append=FALSE, digits=2, digitspvals=2, trim.pval=TRUE,
            width=NULL, height=NULL, offx=1, offy=1,
            font=ifelse(Sys.info()["sysname"]=="Windows", "Arial",
            "Helvetica")[[1]], pointsize=12, add.rownames=FALSE)
          
          # Create a file name
          filen <- "table_aov"
          # filen <- paste("YOUR_DIR/table_aov")
          # Generate ANOVA output
          fit=aov(yield ~ block + N * P + K, data=npk) # 'npk' dataset from base 'datasets'
          # Save ANOVA table as a PPT
          ### Option 1: pass output as object
          x=summary(fit)
          table2ppt(x=x,file=filen, digits=1, digitspvals=3, add.rownames=TRUE)
          ### Option 2: get output from console
          summary(fit)
          table2ppt(x=x,file=filen, width=5, font="Times New Roman", pointsize=14, digits=4, digitspvals=1, append=TRUE, add.rownames=TRUE) # append table to previous slide
          # Save ANOVA table as a DOC file
          table2doc(x=x,file=filen, digits=1, digitspvals=3, add.rownames=TRUE)
          summary(fit)
          table2doc(file=filen, width=3.5, font="Times New Roman", pointsize=14,  digits=4, digitspvals=1, append=TRUE, add.rownames=TRUE) # append table at end of document
          

          將表格數據導出到ppt和word中:

          table2tex

          table2html: 導出統計輸出到HTML表。

          table2tex(x=NULL, file="Rtable", type="TEX", digits=2,
            digitspvals=2, trim.pval=TRUE, summary=FALSE, standAlone=TRUE,
            add.rownames=FALSE, ...)
          

          summary:是否匯總數據文件。

          standAlone:導出的Latex代碼應該是獨立可編譯的,還是應該粘貼到另一個文檔中。

          add.rownames:是否應該將行名添加到表中(在第一列之前插入一列)。

          # Create a file name
          filen <- tempfile(pattern="table_aov") # or
          # filen <- paste("YOUR_DIR/table_aov")
          # Generate ANOVA output
          fit=aov(yield ~ block + N * P + K, data=npk) # 'npk' dataset from base 'datasets'
          x=summary(fit)
          # Export to Latex in standAlone format
          table2tex(x=x,file=filen,add.rownames=TRUE)
          # Export to Latex to paste in tex document
          summary(fit) # get output from the console
          table2tex(file=filen, standAlone=FALSE,add.rownames=TRUE)
          # Export to HTML
          table2html(x=x,file=filen) # or
          summary(fit) # get output from the console
          table2html(file=filen,add.rownames=TRUE)
          

          導出到html或tex中的表格數據:


          R統計和作圖

          • Graphpad,經典繪圖工具初學初探
          • 維恩(Venn)圖繪制工具大全 (在線+R包)
          • 在R中贊揚下努力工作的你,獎勵一份CheatShet
          • 別人的電子書,你的電子書,都在bookdown
          • R語言 - 入門環境Rstudio
          • R語言 - 熱圖繪制 (heatmap)
          • R語言 - 基礎概念和矩陣操作
          • R語言 - 熱圖簡化
          • R語言 - 熱圖美化
          • R語言 - 線圖繪制
          • R語言 - 線圖一步法
          • R語言 - 箱線圖(小提琴圖、抖動圖、區域散點圖)
          • R語言 - 箱線圖一步法
          • R語言 - 火山圖
          • R語言 - 富集分析泡泡圖
          • R語言 - 散點圖繪制
          • R語言 - 韋恩圖
          • R語言 - 柱狀圖
          • R語言 - 圖形設置中英字體
          • R語言 - 非參數法生存分析
          • R語言 - 繪制seq logo圖
          • WGCNA分析,簡單全面的最新教程
          • psych +igraph:共表達網絡構建
          • 一文學會網絡分析——Co-occurrence網絡圖在R中的實現
          • 一文看懂PCA主成分分析
          • 富集分析DotPlot,可以服
          • 基因共表達聚類分析和可視化
          • R中1010個熱圖繪制方法
          • 還在用PCA降維?快學學大牛最愛的t-SNE算法吧, 附Python/R代碼
          • 一個函數抓取代謝組學權威數據庫HMDB的所有表格數據
          • 文章用圖的修改和排版
          • network3D: 交互式桑基圖
          • network3D 交互式網絡生成
          • Seq logo 在線繪制工具——Weblogo
          • 生物AI插圖素材獲取和拼裝指導
          • ggplot2高效實用指南 (可視化腳本、工具、套路、配色)
          • 圖像處理R包magick學習筆記
          • SOM基因表達聚類分析初探
          • 利用gganimate可視化全球范圍R-Ladies(R社區性別多樣性組織)發展情況
          • 一分鐘繪制磷脂雙分子層:AI零基礎入門和基本圖形繪制
          • AI科研繪圖(二):模式圖的基本畫法
          • 你知道R中的賦值符號箭頭(<-)和等號(=)的區別嗎?
          • R語言可視化學習筆記之ggridges包
          • 利用ComplexHeatmap繪制熱圖(一)
          • ggplot2學習筆記之圖形排列
          • R包reshape2,輕松實現長、寬數據表格轉換
          • 用R在地圖上繪制網絡圖的三種方法
          • PCA主成分分析實戰和可視化 附R代碼和測試數據
          • iTOL快速繪制顏值最高的進化樹!
          • 12個ggplot2擴展包幫你實現更強大的可視化
          • 編程模板-R語言腳本寫作:最簡單的統計與繪圖,包安裝、命令行參數解析、文件讀取、表格和矢量圖輸出
          • R語言統計入門課程推薦——生物科學中的數據分析Data Analysis for the Life Sciences
          • 數據可視化基本套路總結
          • 你知道R中的賦值符號箭頭<-和等號=的區別嗎?
          • 使用dplyr進行數據操作30例
          • 交集intersect、并集union、找不同setdiff
          • R包reshape2,輕松實現長、寬數據表格轉換
          • 1數據類型(向量、數組、矩陣、 列表和數據框)
          • 2讀寫數據所需的主要函數、與外部環境交互
          • 3數據篩選——提取對象的子集
          • 4向量、矩陣的數學運算
          • 5控制結構
          • 6函數及作用域
          • 7認識循環函數lapply和sapply
          • 8分解數據框split和查看對象str
          • 9模擬—隨機數、抽樣、線性模型
          • 1初識ggplot2繪制幾何對象
          • 2圖層的使用—基礎、加標簽、注釋
          • 3工具箱—誤差線、加權數、展示數據分布
          • 4語法基礎
          • 5通過圖層構建圖像
          • 6標度、軸和圖例
          • 7定位-分面和坐標系
          • 8主題設置、存儲導出
          • 9繪圖需要的數據整理技術
          • 創建屬于自己的調色板
          • 28個實用繪圖包,總有幾個適合你
          • 熱圖繪制
          • R做線性回歸
          • 繪圖相關系數矩陣corrplot
          • 相關矩陣可視化ggcorrplot
          • 繪制交互式圖形recharts
          • 交互式可視化CanvasXpress
          • 聚類分析factoextra
          • LDA分析、作圖及添加置信-ggord
          • 解決散點圖樣品標簽重疊ggrepel
          • 添加P值或顯著性標記ggpubr
          • Alpha多樣性稀釋曲線rarefraction curve
          • 堆疊柱狀圖各成分連線畫法:突出組間變化
          • 沖擊圖展示組間時間序列變化ggalluvial
          • 桑基圖riverplot
          • 微生物環境因子分析ggvegan
          • 五彩進化樹與熱圖更配ggtree
          • 多元回歸樹分析mvpart
          • 隨機森林randomForest 分類Classification 回歸Regression
          • 加權基因共表達網絡分析WGCNA
          • circlize包繪制circos-plot
          • R語言搭建炫酷的線上博客系統
          • 28個實用繪圖包,總有幾個適合你
          • 熱圖繪制
          • R做線性回歸
          • 繪圖相關系數矩陣corrplot
          • 相關矩陣可視化ggcorrplot
          • 繪制交互式圖形recharts
          • 交互式可視化CanvasXpress
          • 聚類分析factoextra
          • LDA分析、作圖及添加置信-ggord
          • 解決散點圖樣品標簽重疊ggrepel
          • 添加P值或顯著性標記ggpubr
          • Alpha多樣性稀釋曲線rarefraction curve
          • 堆疊柱狀圖各成分連線畫法:突出組間變化
          • 沖擊圖展示組間時間序列變化ggalluvial
          • 桑基圖riverplot
          • 微生物環境因子分析ggvegan
          • 五彩進化樹與熱圖更配ggtree
          • 多元回歸樹分析mvpart
          • 隨機森林randomForest 分類Classification 回歸Regression
          • 加權基因共表達網絡分析WGCNA
          • circlize包繪制circos-plot
          • R語言搭建炫酷的線上博客系統
          • 維恩(Venn)圖繪制工具大全 (在線+R包)
          • R包circlize:柱狀圖用膩了?試試好看的弦狀圖
          • 獲取pheatmap聚類后和標準化后的結果
          • 增強火山圖,要不要試一下?
          • 一個震撼的交互型3D可視化R包 - 可直接轉ggplot2圖為3D
          • 贈你一只金色的眼 - 富集分析和表達數據可視化
          • 是Excel的圖,不!是R的圖
          • 道友,來Rstudio里面看動畫了
          • 用了這么多年的PCA可視化竟然是錯的!!!

          主站蜘蛛池模板: 在线电影一区二区| 暖暖免费高清日本一区二区三区| 国产一区视频在线| 人妻体体内射精一区二区| 无码精品不卡一区二区三区 | 日韩国产免费一区二区三区| 国产成人精品一区在线 | 大香伊人久久精品一区二区| 中文字幕一精品亚洲无线一区| 韩国精品福利一区二区三区| 91大神在线精品视频一区| 国产丝袜无码一区二区三区视频| 日韩精品一区二区三区视频| 波多野结衣精品一区二区三区| 国产一区二区不卡老阿姨| 久久久国产精品亚洲一区| 美女一区二区三区| 亚洲日韩精品无码一区二区三区| 日韩精品无码人妻一区二区三区| 精品一区二区三区影院在线午夜| 国产日本一区二区三区| 亚洲日本一区二区| 人妻体体内射精一区二区| 美女毛片一区二区三区四区| 精品亚洲AV无码一区二区三区| 在线精品国产一区二区| 日韩一区二区视频在线观看| 亚洲性色精品一区二区在线| 精品人妻无码一区二区色欲产成人 | 午夜福利国产一区二区| 午夜视频久久久久一区| 亚洲AV永久无码精品一区二区国产| 视频一区二区精品的福利| 亚洲第一区精品日韩在线播放| 中文字幕一区二区视频| 久久一区二区明星换脸| 亚洲欧美一区二区三区日产| 99偷拍视频精品一区二区| 国产免费伦精品一区二区三区| 黑人大战亚洲人精品一区| 人妻无码第一区二区三区|