读书人

服务端gridview导出到excel的有关问题

发布时间: 2012-03-27 13:44:24 作者: rapoo

服务端gridview导出到excel的问题
Private Sub importExl()
Dim fileName As String = Server.MapPath("\") & "//" & Session("user_id").ToString() & "_" & Me.lblEquType.Text.ToString().Trim() & "_draft.xlsx"
Dim fs As New FileStream(fileName, FileMode.Create, FileAccess.Write)
Dim streamW As New StreamWriter(fs, System.Text.Encoding.GetEncoding("gb2312"))
Dim sw As New StringWriter()
GridConfigPara.RenderControl(htw)
streamW.Write(sw.ToString())
streamW.Flush()
streamW.Close()
End Sub
导出的excel打开错误,请教有什么好的方法 在服务端把gridview导出到excel。

[解决办法]
http://www.cnblogs.com/hemood/archive/2009/08/25/1553643.html
[解决办法]

C# code
  public static void PrintExcel(DataTable dt)        {            if (dt.Rows.Count > 0)            {                Excel.Application ExcelApp = new Excel.Application();                ExcelApp.Visible = true;                Excel.Workbooks workbooks = ExcelApp.Workbooks;                Excel._Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);                Excel.Sheets sheets = workbook.Worksheets;                Excel._Worksheet worksheet = (Excel._Worksheet)sheets.get_Item(1);                int intColumnsCount = dt.Columns.Count;                Excel.Range range_data = null;                int iRow = 5;                string strExcelBeginColumn = "A";                string strExcelEndColumn = string.Empty;                int a = intColumnsCount / 26;                if (a > 0)                {                    string strFirstKey = ((char)(65 + (a - 1))).ToString();                    int b = intColumnsCount % 26;                    string strLastKey = ((char)(65 + (b - 1))).ToString();                    if (b == 0)                    {                        strLastKey = "Z";                        if (strFirstKey == "A")                        {                            strFirstKey = string.Empty;                        }                        else                        {                            strFirstKey = ((char)(65 + (a - 2))).ToString();                        }                    }                    strExcelEndColumn = strFirstKey + strLastKey;                }                else                {                    strExcelEndColumn = ((char)(65 + (intColumnsCount - 1))).ToString();                }                                object[] objColumnsHeaderText = new object[intColumnsCount];                object[] objData = new object[intColumnsCount];                                for (int i = 0; i < dt.Columns.Count; i++)                {                    objColumnsHeaderText[i] = dt.Columns[i].ColumnName.ToString();                }                                range_data = worksheet.get_Range(strExcelBeginColumn + iRow.ToString().Trim(), strExcelEndColumn + iRow.ToString().Trim());                range_data.Font.Size = 10;                range_data.Value2 = objColumnsHeaderText;                range_data.Font.Bold = true;                range_data.Rows.HorizontalAlignment = HorizontalAlign.Center;                range_data.Borders.LineStyle = 1;                for (int i = 0; i < dt.Rows.Count; i++)                {                    iRow++;                    for (int j = 0; j < intColumnsCount; j++)                    {                        if (dt.Rows[i][j] != null)                        {                            objData[j] = dt.Rows[i][j].ToString().Trim();                        }                        else                        {                            objData[j] = "";                        }                    }                    range_data = worksheet.get_Range(strExcelBeginColumn + iRow.ToString().Trim(), strExcelEndColumn + iRow.ToString().Trim());                    range_data.Font.Size = 9;                    range_data.Value2 = objData;                    range_data.Borders.LineStyle = 1;                }            }        } 

读书人网 >asp.net

热点推荐