精华内容
下载资源
问答
  • C# 怎样读写EXCEL文件

    2009-07-14 21:11:00
    [已解决问题] C# 怎样读写EXCEL文件 提问时间: 2009-05-22 16:11 悬赏分:100 浏览:380 次 能提供个例子连接什么的最好 谢谢啊 提问者:飘云 - 初学一级 所有回答(6) ...
    [已解决问题] C# 怎样读写EXCEL文件
    提问时间: 2009-05-22 16:11
    悬赏分:100 浏览:380 次

    能提供个例子连接什么的最好  谢谢啊

    提问者:飘云 - 初学一级
    所有回答(6)

    http://www.cnblogs.com/gaoyuchuanIT/articles/1412898.html


    1个月前   回答者:游子 - 菜鸟二级

    一直用这个串。

     

    Code
    sConnString = "Provider=Microsoft.ACE.OLEDB.12.0;data source=" + dataFile + ";Extended Properties='Excel 12.0 Xml;HDR=YES'";
    try
    {
    m_connExcel
    = new OleDbConnection(sConnString);

    if (m_connExcel != null)
    {

    m_connExcel.Open();
    fRet
    = true;
    }
    }
    catch (Exception e)
    {
    fRet
    = false;
    Trace.WriteLine(
    "COleDbExcelWrapper.Open: Open excel file failed! " + e.Message);
    }

     


    1个月前   回答者:winzheng - 老鸟四级

       DataSet ds = new DataSet();
            OleDbCommand oleCommand = new OleDbCommand("SELECT * FROM [Sheet1$]", new OleDbConnection(EXCELConnString + Path));
            OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);

            oleAdapter.Fill(ds, "[Sheet1$]");
            // 数据绑定
            return ds.Tables[0];

    这是把读取excel文件的方式。读入dataset内后,怎么操作就省略了。


    1个月前   回答者:邢少 - 老鸟四级

                string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + addr + ";Extended Properties=Excel 8.0";///建立连接,地址为str传递的地址
                OleDbConnection myConn = new OleDbConnection(strCon);
                string strCom = " SELECT * FROM [sheet1$]";///SQL操作语句,就是说:取得所有数据从Sheet1

                myConn.Open();
                OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
                myDataSet = new DataSet();///建立新的数据集myDataSet
                myCommand.Fill(myDataSet, "[sheet1$]");///填充数据集
                myConn.Close();
               
                //读取
                String str;
                str=myDataSet.Tables[0].Rows[0][0].ToString();
                return str;


    1个月前   回答者:黄毛怪 - 菜鸟二级

    #region 最简单的导出Excel
           
    public void CreateExcel(DataTable _table, string FileName)
            {
               
    //FileName = Server.UrlEncode(FileName);
                HttpResponse response = Page.Response;
                response.Clear();
                response.Buffer
    = true;
                response.Charset
    = "GB2312";
                response.HeaderEncoding
    = System.Text.Encoding.GetEncoding("GB2312");
                response.ContentEncoding
    = System.Text.Encoding.GetEncoding("GB2312");
                response.AddHeader(
    "Content-Disposition", "attachment;filename=" + FileName);
                response.AddHeader(
    "Content-Type", "application/octet-stream;charset=GB2312");
                response.ContentType
    = "application/ms-excel";
               
    string ls_item = "";

                ls_item
    = "编号\t险种\t保单号\t手续费\t手续费率\t佣金\t备注\t分组序号\n";
                response.Write(ls_item);
                ls_item
    = "";
               
    int i = 1;
               
    foreach (DataRow row in _table.Rows)
                {
                    ls_item
    = i.ToString() + "\t" + row[3] + "\t" + row[4] + "\t" + row[7] + "\t" + row[8] + "\t" + row[9] + "\t" + row[10] + "\t" + i.ToString() + "\n";
    response.Write(ls_item);
                    i
    ++;
                }
               
    //写缓冲区中的数据到HTTP头文件中
                response.Flush();
                response.Clear();
                response.End();
            }
           
    #endregion

           
    #region 引用了OWC11组件,比较方便,好控制
           
    private void ExpoertExcel(DataTable _table)
            {
               
    //请在项目中引用OWC11(COM组件)
                OWC11.SpreadsheetClass xlsheet = new OWC11.SpreadsheetClass();
               
    ////合并单元格
                //xlsheet.get_Range(xlsheet.Cells[1, 1], xlsheet.Cells[1, 8]).set_MergeCells(true);
               
    //xlsheet.ActiveSheet.Cells[1, 1] = "保险劳务费";
                ////字体加粗
                //xlsheet.get_Range(xlsheet.Cells[1, 1], xlsheet.Cells[1, 8]).Font.set_Bold(true);
                ////单元格文本水平居中对齐
                //xlsheet.get_Range(xlsheet.Cells[1, 1], xlsheet.Cells[1, 8]).set_HorizontalAlignment(OWC11.XlHAlign.xlHAlignCenter);
                ////设置字体大小
                //xlsheet.get_Range(xlsheet.Cells[1, 1], xlsheet.Cells[1, 8]).Font.set_Size(14);
               
    //设置列宽
                xlsheet.get_Range(xlsheet.Cells[1,1], xlsheet.Cells[1, 1]).set_ColumnWidth(5);
                xlsheet.get_Range(xlsheet.Cells[
    1, 2], xlsheet.Cells[1,2]).set_ColumnWidth(12);
                xlsheet.get_Range(xlsheet.Cells[
    1, 3], xlsheet.Cells[1, 3]).set_ColumnWidth(25);
                xlsheet.get_Range(xlsheet.Cells[
    1, 4], xlsheet.Cells[1, 4]).set_ColumnWidth(15);
                xlsheet.get_Range(xlsheet.Cells[
    1, 5], xlsheet.Cells[1, 5]).set_ColumnWidth(10);
                xlsheet.get_Range(xlsheet.Cells[
    1, 6], xlsheet.Cells[1, 6]).set_ColumnWidth(15);
                xlsheet.get_Range(xlsheet.Cells[
    1, 7], xlsheet.Cells[1, 7]).set_ColumnWidth(10);
                xlsheet.get_Range(xlsheet.Cells[
    1, 8], xlsheet.Cells[1, 8]).set_ColumnWidth(8);
               
    //设置行高
                xlsheet.get_Range(xlsheet.Cells[1, 1], xlsheet.Cells[_table.Rows.Count, 8]).set_RowHeight(20);
               
               
    //画边框线
                xlsheet.get_Range(xlsheet.Cells[1, 1], xlsheet.Cells[_table.Rows.Count, 8]).Borders.set_LineStyle(OWC11.XlLineStyle.xlContinuous);
               
    //设置字体大小
                xlsheet.get_Range(xlsheet.Cells[1, 1], xlsheet.Cells[_table.Rows.Count, 8]).Font.set_Size(10);
               
    //写入数据 (这里可根据需要由DS生成)
                int i = 1,j=0;
               
    int groupID = 0;
               
    double t1 = 0.0, t2 = 0.0;
               
    foreach (DataRow row in _table.Select("佣金<1333 and 险种<>''", "佣金 desc")) //注意写入数据时,必须从第一行开始写EXCEL里没有第"0"行
                {
                   
    if (j % 10 == 0)
                    {
                        t1
    = 0.0;
                        t2
    = 0.0;
                        SetTitle(xlsheet, i);
                        i
    ++; i++; groupID++;
                    }
                    xlsheet.ActiveSheet.Cells[i,
    1] = j%10+1;
                    xlsheet.ActiveSheet.Cells[i,
    2] = row["险种"];
                    xlsheet.ActiveSheet.Cells[i,
    3] = row["保单号"].ToString()+" ";
                    xlsheet.ActiveSheet.Cells[i,
    4] = row["手续费"];
                    xlsheet.ActiveSheet.Cells[i,
    5] = row[8];//"手续费率"
                    xlsheet.ActiveSheet.Cells[i, 6] = row["佣金"];
                    xlsheet.ActiveSheet.Cells[i,
    7] = row["备注"];
                    xlsheet.ActiveSheet.Cells[i,
    8] = groupID;//分组
                    t1 += Convert.ToDouble(row["手续费"]);
                    t2
    += Convert.ToDouble(row["佣金"]);
                   
    if (j % 10 == 9)
                    {
                        SetFoot(xlsheet,
    ++i, t1, t2);
                        i
    ++;                  
                    }
                    i
    ++; j++;
                }
               
    try
                {
                   
    //格式化 Selection.NumberFormatLocal = "0;[红色]0"
                    xlsheet.get_Range(xlsheet.Cells[1, 3], xlsheet.Cells[_table.Rows.Count, 3]).set_NumberFormat("0");
                    xlsheet.get_Range(xlsheet.Cells[
    1, 4], xlsheet.Cells[_table.Rows.Count, 4]).set_NumberFormat("¥#,##0.00");
                    xlsheet.get_Range(xlsheet.Cells[
    1, 5], xlsheet.Cells[_table.Rows.Count, 5]).set_NumberFormat("¥#,##0.00");
                    xlsheet.get_Range(xlsheet.Cells[
    1, 6], xlsheet.Cells[_table.Rows.Count, 6]).set_NumberFormat("¥#,##0.00");
                   
    if (_table != null) _table.Dispose();
                    xlsheet.Export(System.AppDomain.CurrentDomain.BaseDirectory
    + "计算并导出后的Excel.xls", OWC11.SheetExportActionEnum.ssExportActionNone, OWC11.SheetExportFormat.ssExportXMLSpreadsheet);
                    GC.Collect();
                    lblMsg.Text
    = "导出成功!!!";
                }
               
    catch
                {
                    lblMsg.Text
    = "请关闭Excel文件,再重试!!!";
                   
    return;
                }
                Response.Redirect(
    "计算并导出后的Excel.xls");          
            }
           
    private void SetTitle(Microsoft.Office.Interop.Owc11.SpreadsheetClass xlsheet,int row)       
            {
               
    //合并单元格
                xlsheet.get_Range(xlsheet.Cells[row, 1], xlsheet.Cells[row, 8]).set_MergeCells(true);
                xlsheet.ActiveSheet.Cells[row,
    1] = "保险劳务费";
               
    //字体加粗
                xlsheet.get_Range(xlsheet.Cells[row, 1], xlsheet.Cells[row, 8]).Font.set_Bold(true);
               
    //单元格文本水平居中对齐
                xlsheet.get_Range(xlsheet.Cells[row, 1], xlsheet.Cells[row, 8]).set_HorizontalAlignment(OWC11.XlHAlign.xlHAlignCenter);
               
    //设置字体大小
                xlsheet.get_Range(xlsheet.Cells[row, 1], xlsheet.Cells[row, 8]).Font.set_Size(14);
                xlsheet.get_Range(xlsheet.Cells[row,
    1], xlsheet.Cells[row, 1]).set_RowHeight(35);

                row
    ++;

                xlsheet.ActiveSheet.Cells[row ,
    1] = "编号";
                xlsheet.ActiveSheet.Cells[row ,
    2] = "险种";
                xlsheet.ActiveSheet.Cells[row ,
    3] = "保单号";
                xlsheet.ActiveSheet.Cells[row ,
    4] = "手续费";
                xlsheet.ActiveSheet.Cells[row,
    5] = "手续费率";
                xlsheet.ActiveSheet.Cells[row,
    6] = "佣金";
                xlsheet.ActiveSheet.Cells[row ,
    7] = "备注";
                xlsheet.ActiveSheet.Cells[row ,
    8] = "分组序号";//分组

               
    //字体加粗
                xlsheet.get_Range(xlsheet.Cells[row, 1], xlsheet.Cells[row, 8]).Font.set_Bold(true);
               
    //单元格文本水平居中对齐
                xlsheet.get_Range(xlsheet.Cells[row, 1], xlsheet.Cells[row, 8]).set_HorizontalAlignment(OWC11.XlHAlign.xlHAlignCenter);
               
    //设置字体大小8
                xlsheet.get_Range(xlsheet.Cells[row, 1], xlsheet.Cells[row, 8]).Font.set_Size(10);

            }
           
    private void SetFoot(Microsoft.Office.Interop.Owc11.SpreadsheetClass xlsheet, int row,double t1,double t2)
            {
                row
    ++;
                xlsheet.ActiveSheet.Cells[row,
    1] = "合计";
               
    //字体加粗
                xlsheet.get_Range(xlsheet.Cells[row, 1], xlsheet.Cells[row, 1]).Font.set_Bold(true);
               
    //合并单元格
                xlsheet.get_Range(xlsheet.Cells[row, 1], xlsheet.Cells[row, 3]).set_MergeCells(true);
               
    //单元格文本水平居中对齐
                xlsheet.get_Range(xlsheet.Cells[row, 1], xlsheet.Cells[row, 3]).set_HorizontalAlignment(OWC11.XlHAlign.xlHAlignCenter);
                xlsheet.ActiveSheet.Cells[row,
    4] = t1;
                xlsheet.ActiveSheet.Cells[row,
    6] = t2;
            }
           
    #endregion
    Response导出的文件,中文文件名乱码的问题未解决,你自己小心!


    1个月前   回答者:月光小提琴 - 初学一级

     

    using System.Reflection;
    using Microsoft.Office.Interop.Excel;

    Application myExcel
    = new ApplicationClass();
    Workbook myWorkbook
    = null;
    Worksheet mySheet
    = null;
    string excelFileName = "test.xls";

    try
    {
    // 打开Excel文件
    myWorkbook = myExcel.Workbooks.Open(excelFileName, Missing.Value, Missing.Value, Missing.Value,
    Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
    Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
    // 获取第一个sheet
    mySheet = (Worksheet)myWorkbook.Sheets[1];

    // 读取第一行第一列的数据
    string firstString = (string)((Range)mySheet.Cells[1, "A"]).Formula.ToString();

    // 修改第一行第一列的数据
    ((Range)mySheet.Cells[1, "A"]).Formula = "test";

    // 保存Excel文件
    myWorkbook.SaveAs(mappingFilePath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
    XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

    // 关闭Excel文件
    myWorkbook.Close(false, Missing.Value, Missing.Value);
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.ToString());
    }
    finally
    {
    // 释放资源
    mySheet = null;
    myWorkbook
    = null;
    myExcel.Quit();
    myExcel
    = null;
    }

     


    1个月前   回答者:轩辕枯藤 - 菜鸟二级
    评论
    1个月前   月光小提琴 :
    读取Excel:
    string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;data source=" + ViewState["file"];
    string sql = "SELECT * FROM [Sheet1$]";
    DataTable _table = new DataTable();
    OleDbDataAdapter da = new OleDbDataAdapter(sql, connStr);
    da.Fill(_table);
    ViewState["table"] = _table;
    lblMsg.Text = "总共: "+_table.Rows.Count+" 条记录";
    _table.Dispose();
    欢迎访问:C# Excel
    http://www.cnblogs.com/qiaojun/articles/1486040.html
       您需要登录以后才能回答!

    转载于:https://www.cnblogs.com/springxie/archive/2009/07/14/1523654.html

    展开全文
  • 怎样写make file 文件

    2011-06-12 14:43:00
    或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个...

    什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。
    因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
    makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。
    现在讲述如何写makefile的文章比较少,这是我想写这篇文章的原因。当然,不同产商的make各不相同,也有不同的语法,但其本质都是在“文件依赖性”上做文章,这里,我仅对GNU的make进行讲述,我的环境是RedHat Linux 8.0,make的版本是3.80。必竟,这个make是应用最为广泛的,也是用得最多的。而且其还是最遵循于IEEE 1003.2-1992 标准的(POSIX.2)。
    在这篇文档中,将以C/C++的源码作为我们基础,所以必然涉及一些关于C/C++的编译的知识,相关于这方面的内容,还请各位查看相关的编译器的文档。这里所默认的编译器是UNIX下的GCC和CC。

    关于程序的编译和链接
    ——————————
    在此,我想多说关于程序编译的一些规范和方法,一般来说,无论是C、C++、还是pas,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。
    编译时,编译器需要的是语法的正确,函数与变量的声明的正确。对于后者,通常是你需要告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在C/C++文件中),只要所有的语法正确,编译器就可以编译出中间目标文件。一般来说,每个源文件都应该对应于一个中间目标文件(O文件或是OBJ文件)。
    链接时,主要是链接函数和全局变量,所以,我们可以使用这些中间目标文件(O文件或是OBJ文件)来链接我们的应用程序。链接器并不管函数所在的源文件,只管函数的中间目标文件(Object File),在大多数时候,由于源文件太多,编译生成的中间目标文件太多,而在链接时需要明显地指出中间目标文件名,这对于编译很不方便,所以,我们要给中间目标文件打个包,在Windows下这种包叫“库文件”(Library File),也就是 .lib 文件,在UNIX下,是Archive File,也就是 .a 文件。
    总结一下,源文件首先会生成中间目标文件,再由中间目标文件生成执行文件。在编译时,编译器只检测程序语法,和函数、变量是否被声明。如果函数未被声明,编译器会给出一个警告,但可以生成Object File。而在链接程序时,链接器会在所有的Object File中找寻函数的实现,如果找不到,那到就会报链接错误码(Linker Error),在VC下,这种错误一般是:Link 2001错误,意思说是说,链接器未能找到函数的实现。你需要指定函数的Object File.
    好,言归正传,GNU的make有许多的内容,闲言少叙,还是让我们开始吧。

    Makefile 介绍
    ———————
    make命令执行时,需要一个 Makefile 文件,以告诉make命令需要怎么样的去编译和链接程序。
    首先,我们用一个示例来说明Makefile的书写规则。以便给大家一个感兴认识。这个示例来源于GNU的make使用手册,在这个示例中,我们的工程有8个C文件,和3个头文件,我们要写一个Makefile来告诉make命令如何编译和链接这几个文件。我们的规则是:
    1)如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。
    2)如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序。
    3)如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序。
    只要我们的Makefile写得够好,所有的这一切,我们只用一个make命令就可以完成,make命令会自动智能地根据当前的文件修改的情况来确定哪些文件需要重编译,从而自己编译所需要的文件和链接目标程序。

    一、Makefile的规则
    在讲述这个Makefile之前,还是让我们先来粗略地看一看Makefile的规则。
    target ... : prerequisites ...
    command
    ...
    ...
    target也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label),对于标签这种特性,在后续的“伪目标”章节中会有叙述。
    prerequisites就是,要生成那个target所需要的文件或是目标。
    command也就是make需要执行的命令。(任意的Shell命令)
    这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中。说白一点就是说,prerequisites中如果有一个以上的文件比target文件要新的话,command所定义的命令就会被执行。这就是Makefile的规则。也就是Makefile中最核心的内容。
    说到底,Makefile的东西就是这样一点,好像我的这篇文档也该结束了。呵呵。还不尽然,这是Makefile的主线和核心,但要写好一个Makefile还不够,我会以后面一点一点地结合我的工作经验给你慢慢到来。内容还多着呢。:)

    二、一个示例
    正如前面所说的,如果一个工程有3个头文件,和8个C文件,我们为了完成前面所述的那三个规则,我们的Makefile应该是下面的这个样子的。
    edit : main.o kbd.o command.o display.o /
    insert.o search.o files.o utils.o
    cc -o edit main.o kbd.o command.o display.o /
    insert.o search.o files.o utils.o
    main.o : main.c defs.h
    cc -c main.c
    kbd.o : kbd.c defs.h command.h
    cc -c kbd.c
    command.o : command.c defs.h command.h
    cc -c command.c
    display.o : display.c defs.h buffer.h
    cc -c display.c
    insert.o : insert.c defs.h buffer.h
    cc -c insert.c
    search.o : search.c defs.h buffer.h
    cc -c search.c
    files.o : files.c defs.h buffer.h command.h
    cc -c files.c
    utils.o : utils.c defs.h
    cc -c utils.c
    clean :
    rm edit main.o kbd.o command.o display.o /
    insert.o search.o files.o utils.o
    反斜杠(/)是换行符的意思。这样比较便于Makefile的易读。我们可以把这个内容保存在文件为“Makefile”或“makefile”的文件中,然后在该目录下直接输入命令“make”就可以生成执行文件edit。如果要删除执行文件和所有的中间目标文件,那么,只要简单地执行一下“make clean”就可以了。
    在这个makefile中,目标文件(target)包含:执行文件edit和中间目标文件(*.o),依赖文件(prerequisites)就是冒号后面的那些 .c 文件和 .h文件。每一个 .o 文件都有一组依赖文件,而这些 .o 文件又是执行文件 edit 的依赖文件。依赖关系的实质上就是说明了目标文件是由哪些文件生成的,换言之,目标文件是哪些文件更新的。
    在定义好依赖关系后,后续的那一行定义了如何生成目标文件的操作系统命令,一定要以一个Tab键作为开头。记住,make并不管命令是怎么工作的,他只管执行所定义的命令。make会比较targets文件和prerequisites文件的修改日期,如果prerequisites文件的日期要比targets文件的日期要新,或者target不存在的话,那么,make就会执行后续定义的命令。
    这里要说明一点的是,clean不是一个文件,它只不过是一个动作名字,有点像C语言中的lable一样,其冒号后什么也没有,那么,make就不会自动去找文件的依赖性,也就不会自动执行其后所定义的命令。要执行其后的命令,就要在make命令后明显得指出这个lable的名字。这样的方法非常有用,我们可以在一个makefile中定义不用的编译或是和编译无关的命令,比如程序的打包,程序的备份,等 
     
     

    展开全文
  • python是个很强大的工具,但有一些不方便的地方(请允许我这样说)要编译成可执行文件得靠第三方插件,它本身的idle是无法完成的。目前主要有三种工具可以用:py2exe,pyinstaller,cxfreeze。经过我实际使用发现,...

    python是个很强大的工具,但有一些不方便的地方(请允许我这样说)要编译成可执行文件得靠第三方插件,它本身的idle是无法完成的。目前主要有三种工具可以用:py2exe,pyinstaller,cxfreeze。经过我实际使用发现,前面两种有优点也有缺点,但最重要的一点是找不到对应的版本,可能是我没有的对地方。所以这里用的是cxfreeze.(我用的是python3.4.3,目前是最新版本)

    1、安装好python,建议将python安装在根目录下  


    2、去cxfreeze官网下载好对应的cx_freeeze版本。


    3、正确安装cx_freeze,看下图

     


    4.运行:cmd命令,查看cx_freeze是否安装正确。如果出现了下图的情况,说明环境变量设置不正确。请点击下面的环境变量设置方法。

     

    5.当然,设置完环境变量可能还是有问题,那么这里就要设置路径了,路径设置在cxfreeze.bat文件中,cxfreeze.bat文件在:c:\python34\scripts文件夹下(如果你不是安装在c盘,找到相应位置即可)看下图,这里发现没有cxfreeze.bat文件。


    6.那么要怎么生成cxfreeze.bat文件呢。用python编译一下cxfreeze-postinstall(二进制)文件即可,编译后的文件如下图


    7.用记事本打开cxfreeze.bat文件。如果你不是装在c盘,请将路径改成你的安装路径

     

    8.这里以经典的hello world为例,看下图。cd: c:\python34\scripts将目录转到cxfreeze所在目录。cxfreeze c:\test\hello.py --target-dir c:\test命令:cxfreeze c:\test\hello.py对hello.py进行编译,--target-dir目标存储目录为c:\test文件夹。生成过程相当长,如下图。




    9.看下test文件夹下,已经生成.exe文件。


    10.点击运行,如下图(如果没有在代码中添加暂停的代码,只能看到黑框一闪而过)代码在后面一张图,供参考。至些,.py文件成功转成.exe可执行文件。



    ps:最后只想说如果实在是没有打包好,那就是cxfreeze的版本没有下载对,重新下载吧!!!

    展开全文
  • 的Java想自动生成UML图,用什么软件最好?求大神指点,把软件详细安装,使用附上,表示衷心的感谢!么么哒
  • 最近采用Struts2+jQuery一个项目,在JS文件中采用AJAX请求Action,当时时,将URL死了(xxxx.action),可是最近呢看着.action后缀不是很舒服,想要改成.do,结果问题就出来了(找不到action了),我想把struts....
  • 怎样写出优良性的代码 1. 全局的架构 很多时候是由于对整个项目没有完整的构思,导致后面功能的扩展打乱现有的代码,后面阅读或修改看着乱、不清晰。 ① 项目的操作流程 ② 理解项目的开发用意 ③ 开发...

    怎样写出优良性好的代码

    1. 全局的架构

    很多时候是由于对整个项目没有完整的构思,导致后面功能的扩展打乱现有的代码,后面阅读或修改看着好乱、不清晰。

    ① 项目的操作流程

    ② 理解项目的开发用意

    ③ 开发的程序要符合人们的操作习惯

    通过对项目的全面理解开始架构项目。

    2. 项目架构

    这么讲的项目架构是项目的文件路径整的思路,应尽量不破坏现有架构的结构,让人看着就明白整体的结构是怎样的。比如,图片、样式、JavaScript,这样分开会结构清晰很多。项目中是包含很多页面的,同时每个页面也包含各自的JavaScript和css等,那么可以分开不同的页面路径文件夹,当然还包含其他资源也是一样可以放在文件夹中,这么我们按照页面名字区分。现在开发中我们应该都用到构建工具或者工程化工具,比如压缩,压缩文件可以放相同文件夹中,只要命名不一样就行,就像min.js加min说明是压缩后的文件。

    3. 公共方法、资源

    公共方法和资源主要包括JavaScript公共方法、less公共方法。可以单独构建对于它们的公共方法。这里还可以分为各种方法的封装,比如,JavaScript的公共方法可能包括一些基本方法的封装、ajax的封装,这是可以分开构建,一个是javascript的com.js方法和ajax.js封装两个,用的时候就可以直接引入对应的方法资源。这么可以就涉及到一些到底哪些是公共方法的问题了,那就是把一些多处使用的代码抽离出来封装成公共方法,在使用的时候就可以直接调用节省了很多代码。这个地方我会出现的情况往往就是贪图一时的方便就不管了,导致后面的修改或者阅读性很不好,这个方面是要及时改错。

    4. 代码的书写指导原则

    ① 可读性

    可读性就是书写的代码要就有优良的可读性,让人一看就明白这个地方是干嘛的。这里有一些建议总结,比如,名字的起名要具有实际的意义,看名知意。在业务逻辑的处理过程中应尽量书写容易理解的代码,让代码清楚的阅读起来很容易明白这个过程的干嘛的。

    ② 简洁性

    简洁的代码可以让程序更加的小巧,而且跑起来不容易出bug,或者找起来也容易发现,以及后面修改也更加清晰,所以看得出来具有简洁性的代码是多么的重要。以最少的代码量做相同的工作不是更加好麽。(* ̄︶ ̄)

    ③ 注释

    就像上面所说的这些,在复杂的逻辑中我们应适当的加一些注释,方便我们下次阅读更加容易。注释的多少应根据代码的多少、容易程度、逻辑的复杂度进行相应的调整。

    ④ 风格

    代码要保持统一的风格。不要这个地方一种风格,别的地方又一种风格。

    5. JavaScript的书写

    ① 对象封装

    Js中的方法可以用对象的方法进行封装,这样看起来会整洁干净一点。比如,可以声明一个对象,然后在对象中书写方法或者声明变量,使用的时候再对象点方法的方式进行调用。

    ② 方法封装

    顾名思义,就是Js中书写的代码进行方法封装,不要暴露逻辑代码在方法体外。比如,事件处理、事件处理对应的方法以及事件处理过程中使用到的公共方法和逻辑处理,我们都可以进行方法的封装,不要暴露在外面。

    ③ 处理逻辑不要暴露

    这个就是前两点说过的,代码处理不要暴露在方法体外。

    6. Css、less的书写

    ① 共用原则

    就是页面构建中有相同的其实使用到的css是差不多的时候,可以把相同的样式进行抽离共同使用,比如说一个登陆界面和一个注册界面其实是差不多的,有一部分是相同的样式可以抽离共用,可以减少很多代码,加快界面渲染速度。在less等预编译工具中,因为可以引入使用及特性,可以封装更多的公共样式,比如,定义变量的方式定义一些颜色,因为可以传参的方式调用,可以定义一组样式调用使用,比如,定义一组使用position方式居中盒模型的方式。

    ② class、id的使用

    语义化,看了就明白这是什么的盒模型。下划线,一般组合多个英文单词的时候或者组合多个意思的时候。在css中避免多级嵌套书写。在less中多级嵌套使用,如果没使用的可以不加上这级嵌套。

    ③ 样式的架构及整洁性

    按照盒模型的区块进行分类,如果使用less可以定义公共样式。

    7. Html的书写

    保持简洁,按照页面结构划分不同的区域。便签的使用要尽量简洁、区块式划分。

    8. 状态管理和用数据结构管理状态

    对应界面JavaScript中的状态管理,也就是声明变量可以声明在一个对象中,或者对应组的变量声明在对象中,这样防止变量的分散,方便以后理解和管理变量。数据的结构也是使用对象封装,不要太过于暴露在外面看着很乱。

    9. 书写代码前要的一个思考再书写

    有一个前提的思考能让程序的规划更合理,符合程序设计。在之前的项目中可能就是缺少这步,导致代码往后的书写越来越混乱,改起来很困难。

    10. 对代码优良性的一些思考

    ① 简洁性

    ② 系统性

    ③ 规范性

    ④ 优良性

    ⑤ 重用性

    展开全文
  • [已解决问题] C# 怎样读写EXCEL文件 提问时间: 2009-05-22 16:11 悬赏分:100 浏览:380 次 能提供个例子连接什么的最好 谢谢啊 提问者:飘云 - 初学一级 所有回答(6) ...
  • 原文:点击打开链接 public static void main(String args[]) {try { Process process = Runtime.getRuntime().exec( "cmd.exe /c notepad c:/123.txt"); } catch (Exception e) { e.printStackTrace(); } }
  • 返回地址之后,怎样才能转换为非文件类型的指针?我要的是结构体指针,而非文件的指针!
  • 小试一下C语言的fscanf和fprintf的格式化输入和输出,因为之前从来没有使用C来操作文件,所以一番折腾,还成功了,现贴出来,以后再用。 insert_new_elsement.c#include <stdio.h> typedef str...
  • 怎样将生成的pdf文件转为eps文件

    万次阅读 2018-07-26 20:54:03
    本人论文时一般是在Power Point画图,以下介绍怎样将画的图无失真的转化为矢量图.eps。 需要用到软件Microsoft Visio和Inkscape。 首先在PPT中画所需要的图,例如: 将上述的表格选中,并复制到软件Visio...
  • 怎样运行Python文件

    2017-10-19 10:54:57
    首先,新建一个py文件,随便一些内容,第一个py程序当然是hello world了 然后当然是保存了,并且打开cmd,进入到存放py文件的文件夹。 然后python py文件名,回车就可以了。注意中间有空格。.\表示当前目录,...
  • python 读写csv文件(创建,追加,覆盖)

    万次阅读 多人点赞 2018-08-28 14:52:19
    总述: 这篇博客讲述python怎样创建,读写,追加csv文件 ...这里创建好文件,将csv文件的头信息进了文件。 import csv def create_csv(): path = "aa.csv" with open(path,'w...
  • 我遇到的问题是我在txt文件数据,我发现我的程序结束以后,我的数据再显示出来,我知道这应该是缓冲区在作怪,我想要的结果是往txt里一个字符后,我要它马上显示出来,有没有高手提供代码或者意见。...
  • 怎样修改MATLAB现有代码中数据Inspector跟踪集.trs文件对Java的支持 Riscure Inspector使用.trs文件格式来保存和从磁盘读取跟踪。 为了更地帮助读取和编写来自第三方的跟踪集文件,Riscure发布了此Java库。 快速...
  • 字节码”,如果Python进程拥有写入权限,将把程序的字节码保存为一个以.pyc为扩展名的文件, 如果Python无法在机器上写入字节码,程序仍然可以工作:字节码将会在内存中生成并在程序结束时简单地丢弃。一旦程序编译...
  • 怎样写robots.txt实例

    千次阅读 2015-09-26 19:38:28
     robots.txt是一个纯文本文件,是搜索引擎中访问网站的时候要查看的第一个文件。robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。每个站点最好建立一个robots.txt文件,对seo更友好。每当搜索蜘蛛来...
  • 怎样以少于1000行代码一个视频播放器-将电影文件中的视频帧存储为BMP图片 源代码:tutorial01.cpp 编译的libav库:libav.zip 1 概述 电影文件都包含一些基本组件。首先,电影文件本身称之为一个容器...
  • 1 打开和关闭一个文件 类方法File.new 打开一个文件,并将它实例化为一个File对象,他的第一个参数是文件名....他的意思是怎样打开一个文件(读,或者其他的).默认是'r'(也就是读). Ruby代码 fil
  • 字节码”,如果Python进程拥有写入权限,将把程序的字节码保存为一个以.pyc为扩展名的文件, 如果Python无法在机器上写入字节码,程序仍然可以工作:字节码将会在内存中生成并在程序结束时简单地丢弃。一旦程序编译...
  • 问题:使用eclise提交文件到github,每行文件后面都有^M字符 切换换行符的显示格式, 但是这样只能对新文件起作用,修改旧文件: 转载于:https://www.cnblogs.com/zhangmingcheng/p/11272441.html...
  • 大家有没有做过啊。有做过的告知小弟一下。小弟正在研究中,如果研究了。在给大家贴出代码
  • 准备一个文本文件ds.txt,内容跟网友大约一样。Insus.NET先一个对象,即是处理文本文件每一行,把每一行转换为一个对象。 下面的类别中,有一个方法TryParse()是为了判断文本行是否符合分析...
  • 在c#空文本文件怎样通过鼠标拖动打开其他文本文件,也就是将一个有文字的txt文件拖到C#的文本编辑器里面,然后显示其内容。需要完整代码,配有注释更
  • 新建一个文件,在这个文件如下程序代码 #include<stdio.h> int main (){ printf("Hellowrold!"); } 怎样用Java“Hellowrold!”。 在安装jdk的电脑中,新建一个记事本。在记事本中如下程序...
  • .NET mvc 怎样实现上传excel 文件? 我按照 http://www.w2bc.com/article/168070 里面的代码的,但是后台接收到的参数是null,哪位大神能 帮忙看下哪里有问题吗?或者谁有更的上传excel 文件的方法吗? ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 819
精华内容 327
关键字:

怎样写好文件