首頁>Club>
11
回覆列表
  • 1 # 黑今老許

    市面上其實有很多excel服務期軟體,主要是分為免費的和收費的,好的軟體會幫助“表哥”“表姐”免踩坑。

    免費的我推薦NPOL(引數後面分享給大家)、SpreadJS線上表格編輯器,這兩個都是公開原始碼的。

    收費的我推薦. net平臺的Spread Studio、純前端Spread the Services

    如果是著重於做報表系統的,老許推薦用帆軟的finereport。不僅容易上手,而且一個模板可以多用!

    NPOL引數如下:

    以DataTable型別為引數傳入

    /// <summary>

    /// 匯出

    /// </summary>

    /// <param name="dt"></param>

    /// <returns></returns>

    public string TableToExcel(DataTable dt)

    {

    string urlPath = string.Empty;

    try

    {

    //下載檔名稱

    string fileName = "匯出" + "-" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xlsx"; // 檔名稱

    urlPath = "upload/download/" + fileName; // 檔案下載的URL地址,供給前臺下載

    string filePath = HttpContext.Current.Server.MapPath("\\" + urlPath); // 檔案路徑

    // 1.檢測是否存在資料夾,若不存在就建立個資料夾

    string directoryName = Path.GetDirectoryName(filePath);

    if (!Directory.Exists(directoryName))

    {

    Directory.CreateDirectory(directoryName);

    }

    IWorkbook workbook;

    string fileExt = Path.GetExtension(fileName).ToLower();

    if (fileExt == ".xlsx") { workbook = new XSSFWorkbook(); } else if (fileExt == ".xls") { workbook = new HSSFWorkbook(); } else { workbook = null; }

    if (workbook == null) { return "-0"; }

    //sheet名稱

    ISheet sheet = workbook.CreateSheet("匯出資訊");

    //表頭

    IRow row = sheet.CreateRow(0);

    row.CreateCell(0).SetCellValue("column1");

    row.CreateCell(1).SetCellValue("column2");

    row.CreateCell(2).SetCellValue("column3");

    row.CreateCell(3).SetCellValue("column4");

    row.CreateCell(4).SetCellValue("column5");

    //資料

    for (int i = 0; i < dt.Rows.Count; i++)

    {

    IRow row1 = sheet.CreateRow(i + 1);

    for (int j = 0; j < dt.Columns.Count; j++)

    {

    ICell cell = row1.CreateCell(j);

    cell.SetCellValue(dt.Rows[i][j].ToString() == "" ? "-" : dt.Rows[i][j].ToString());

    }

    }

    // 4.生成檔案

    FileStream filestr = new FileStream(filePath, FileMode.Create);

    workbook.Write(filestr);

    filestr.Close();

    // 5.返回下載路徑

    }

    catch (Exception ex)

    {

    throw ex;

    }

    return urlPath;

    }

  • 中秋節和大豐收的關聯?
  • 考古學考研相關問題?