精华内容
下载资源
问答
  • 记得以前好像一直使用 POI的,故google之 ,发现版本已经升级到3.6轰轰~下下来,运行找到类WorkbookFactory 结果在一个什么ooxml什么的包里,囧。经过测试,的确poi的速度有点大跌眼镜,36116行的数据,2者的解析...

    最近搞excel,用到JXL 。然后读写的时候遇到问题 -- jxl竟然修改一个excel还要先读入再copy,然后才能再那份copy上修改,囧;更囧的是copy以后是2份内存啊~偶的机器直接outofmemory。。。加了-xmx128m才勉强过去,为撒这么不人性化。。。记得以前好像大家都使用 POI的,故google之 ,发现版本已经升级到3.6轰轰~

    下下来,运行找不到类WorkbookFactory 结果在一个什么ooxml什么的包里,囧。经过测试,的确poi的速度有点大跌眼镜,36116行的数据,2者的解析时间差了4倍,输出时间差了2.5倍。不过POI应该是更强大点,JXL的copy会丢失用户的筛选(小遗憾)。不过JXL用起来真不是很顺手,读和写还要分开,2份东东,实现类是2套,感觉对用户不是很友好,哎,谁叫人家速度快呢~

     

    测试结果如下:

      JXL POI
    读取/解析时间 469ms 1843ms
    copy到写工作簿时间 1200ms  
    输出时间 800ms
    5015ms

     

    PS:后来深入用了,发现POI还真是蛮强大的(新闻组很活跃)。。可以部分着色,Cell有RichTextString。

     

    展开全文
  • 原因找到了,为什么没有去弄明白: 在sql server字段类型中,我把存储字段设成binary,结果存储出现异常,改成image就ok了。 应该是方法和字段类型配套,你知道告诉我。我真的太懒了。过了就过了。 var ...

    网上很多,如何把图片、word、excel等保存到数据库中。可是自己就是死活出现异常,百思不得其解。原因找到了,为什么没有去弄明白:

    在sql server字段类型中,我把存储字段设成binary,结果存储出现异常,改成image就ok了。

    应该是方法和字段类型不配套,你知道告诉我。我真的太懒了。过了就过了。

    var
      OpenFile : TOpenDialog;
      Mystream:TMemoryStream;
    begin
      try
        OpenFile := TOpenDialog.Create(Self);
        OpenFile.Filter :='Excel|*.XLS';
        OpenFile.Title := '请选择生产计划文件';
        OpenFile.DefaultExt := 'XLS';
        if OpenFile.Execute() then
          cxsprdsht_WorkOrderXLS.LoadFromFile(OpenFile.FileName)
        else Exit;
    
        if not(frm_WO_Head.cds_WorkOrderBill.State in [dsEdit,dsInsert]) then
           frm_WO_Head.cds_WorkOrderBill.Edit;
    
        Mystream:= TMemoryStream.Create;
        cxsprdsht_WorkOrderXLS.SaveToStream(Mystream);
        Mystream.Position := 0;
        TBlobField(frm_WO_Head.cds_WorkOrderBill.FieldByName'WOM_ProdPlanFile')).LoadFromStream(Mystream);//保存文件流
        Mystream.Free;
      finally
        OpenFile.FreeOnRelease;
      end;
    end;
    查阅相关资料,原来如此而已:
    二进制数据包括 Binary、Varbinary 和 Image
      Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的。
      Binary[(n)] 是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4 个字节。
      Varbinary[(n)] 是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4个字节,不是n 个字节。
      在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序来解释。例如,应用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。

    转载于:https://www.cnblogs.com/usegear/p/3429774.html

    展开全文
  • Android数据转化为Excel表格导入导出

    千次阅读 2016-04-09 17:14:22
    最近需要用到把Android数据到处保存Excel表格中,个人感觉也比较实用,所以就和大家分享一下。以前没接触过该怎么办呢?有问题找百度,只有你想到的没有你找到的。在网上也找到了一些例子,自己又加以完善。...

     最近需要用到把Android数据到处保存到Excel表格中,个人感觉也比较实用,所以就和大家分享一下。以前没接触过该怎么办呢?有问题找百度,只有你想不到的没有你找不到的。在网上也找到了一些例子,自己又加以完善。代码也比较容易,只需要用到一个jxl.jar包,举一反三android数据应该也能转为Word什么的,呵呵。

            Demo实现了一个简单的记账功能,点击导出账单就导出到了Excel表。点击导入账单就把Excel数据显示到Android手机上了。导出账单先把数据保存到Sqlite中然后再倒入Excel,这样做的好处是就算你把Excel表格误删了,还是能从Sqlite中读出以前的保存记录。效果图如下:




    主要代码是ExcelUtils类,封装了把数据转化为Excel的工具类:

    [html] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. public class ExcelUtils {  
    2.     public static WritableFont arial14font = null;  
    3.   
    4.     public static WritableCellFormat arial14format = null;  
    5.     public static WritableFont arial10font = null;  
    6.     public static WritableCellFormat arial10format = null;  
    7.     public static WritableFont arial12font = null;  
    8.     public static WritableCellFormat arial12format = null;  
    9.   
    10.     public final static String UTF8_ENCODING = "UTF-8";  
    11.     public final static String GBK_ENCODING = "GBK";  
    12.   
    13.     public static void format() {  
    14.         try {  
    15.             arial14font = new WritableFont(WritableFont.ARIAL, 14,  
    16.                     WritableFont.BOLD);  
    17.             arial14font.setColour(jxl.format.Colour.LIGHT_BLUE);  
    18.             arial14format = new WritableCellFormat(arial14font);  
    19.             arial14format.setAlignment(jxl.format.Alignment.CENTRE);  
    20.             arial14format.setBorder(jxl.format.Border.ALL,  
    21.                     jxl.format.BorderLineStyle.THIN);  
    22.             arial14format.setBackground(jxl.format.Colour.VERY_LIGHT_YELLOW);  
    23.             arial10font = new WritableFont(WritableFont.ARIAL, 10,  
    24.                     WritableFont.BOLD);  
    25.             arial10format = new WritableCellFormat(arial10font);  
    26.             arial10format.setAlignment(jxl.format.Alignment.CENTRE);  
    27.             arial10format.setBorder(jxl.format.Border.ALL,  
    28.                     jxl.format.BorderLineStyle.THIN);  
    29.             arial10format.setBackground(jxl.format.Colour.LIGHT_BLUE);  
    30.             arial12font = new WritableFont(WritableFont.ARIAL, 12);  
    31.             arial12format = new WritableCellFormat(arial12font);  
    32.             arial12format.setBorder(jxl.format.Border.ALL,  
    33.                     jxl.format.BorderLineStyle.THIN);  
    34.         } catch (WriteException e) {  
    35.   
    36.             e.printStackTrace();  
    37.         }  
    38.     }  
    39.   
    40.     public static void initExcel(String fileName, String[] colName) {  
    41.         format();  
    42.         WritableWorkbook workbook = null;  
    43.         try {  
    44.             File file = new File(fileName);  
    45.             if (!file.exists()) {  
    46.                 file.createNewFile();  
    47.             }  
    48.             workbook = Workbook.createWorkbook(file);  
    49.             WritableSheet sheet = workbook.createSheet("家庭帐务表", 0);  
    50.             sheet.addCell((WritableCell) new Label(0, 0, fileName,  
    51.                     arial14format));  
    52.             for (int col = 0; col < colName.length; col++) {  
    53.                 sheet.addCell(new Label(col, 0, colName[col], arial10format));  
    54.             }  
    55.             workbook.write();  
    56.         } catch (Exception e) {  
    57.             e.printStackTrace();  
    58.         } finally {  
    59.             if (workbook != null) {  
    60.                 try {  
    61.                     workbook.close();  
    62.                 } catch (Exception e) {  
    63.                     // TODO Auto-generated catch block  
    64.                     e.printStackTrace();  
    65.                 }  
    66.             }  
    67.         }  
    68.   
    69.     }  
    70.   
    71.     @SuppressWarnings("unchecked")  
    72.     public static <T> void writeObjListToExcel(List<T> objList,  
    73.             String fileName, Context c) {  
    74.         if (objList != null && objList.size() > 0) {  
    75.             WritableWorkbook writebook = null;  
    76.             InputStream in = null;  
    77.             try {  
    78.                 WorkbookSettings setEncode = new WorkbookSettings();  
    79.                 setEncode.setEncoding(UTF8_ENCODING);  
    80.                 in = new FileInputStream(new File(fileName));  
    81.                 Workbook workbook = Workbook.getWorkbook(in);  
    82.                 writebook = Workbook.createWorkbook(new File(fileName),  
    83.                         workbook);  
    84.                 WritableSheet sheet = writebook.getSheet(0);  
    85.                 for (int j = 0; j < objList.size(); j++) {  
    86.                     ArrayList<String> list = (ArrayList<String>) objList.get(j);  
    87.                     for (int i = 0; i < list.size(); i++) {  
    88.                         sheet.addCell(new Label(i, j + 1, list.get(i),  
    89.                                 arial12format));  
    90.                     }  
    91.                 }  
    92.                 writebook.write();  
    93.                 Toast.makeText(c, "导出到手机存储中文件夹Family成功", Toast.LENGTH_SHORT).show();  
    94.             } catch (Exception e) {  
    95.                 e.printStackTrace();  
    96.             } finally {  
    97.                 if (writebook != null) {  
    98.                     try {  
    99.                         writebook.close();  
    100.                     } catch (Exception e) {  
    101.                         e.printStackTrace();  
    102.                     }  
    103.   
    104.                 }  
    105.                 if (in != null) {  
    106.                     try {  
    107.                         in.close();  
    108.                     } catch (IOException e) {  
    109.                         e.printStackTrace();  
    110.                     }  
    111.                 }  
    112.             }  
    113.   
    114.         }  
    115.     }  
    116.   
    117.     public static  List<BillObject> read2DB(File f, Context con) {  
    118.         ArrayList<BillObject> billList = new ArrayList<BillObject>();  
    119.         try {  
    120.             Workbook course = null;  
    121.             course = Workbook.getWorkbook(f);  
    122.             Sheet sheet = course.getSheet(0);  
    123.               
    124.             Cell cell = null;  
    125.             for (int i = 1; i < sheet.getRows(); i++) {  
    126.                 BillObject tc = new BillObject();  
    127.                 cell = sheet.getCell(1, i);  
    128.                 tc.setFood(cell.getContents());  
    129.                 cell = sheet.getCell(2, i);  
    130.                 tc.setClothes(cell.getContents());  
    131.                 cell = sheet.getCell(3, i);  
    132.                 tc.setHouse(cell.getContents());  
    133.                 cell = sheet.getCell(4, i);  
    134.                 tc.setVehicle(cell.getContents());  
    135.                 Log.d("gaolei", "Row"+i+"---------"+tc.getFood() + tc.getClothes()  
    136.                         + tc.getHouse() + tc.getVehicle());  
    137.                 billList.add(tc);  
    138.                   
    139.             }  
    140.               
    141.         } catch (Exception e) {  
    142.             // TODO Auto-generated catch block  
    143.             e.printStackTrace();  
    144.         }  
    145.         return billList;  
    146.     }  
    147.   
    148.     public static Object getValueByRef(Class cls, String fieldName) {  
    149.         Object value = null;  
    150.         fieldName = fieldName.replaceFirst(fieldName.substring(0, 1), fieldName  
    151.                 .substring(0, 1).toUpperCase());  
    152.         String getMethodName = "get" + fieldName;  
    153.         try {  
    154.             Method method = cls.getMethod(getMethodName);  
    155.             value = method.invoke(cls);  
    156.         } catch (Exception e) {  
    157.             e.printStackTrace();  
    158.         }  
    159.         return value;  
    160.     }  
    161. }  


                 项目源码地址,点击下载......

    展开全文
  • 今天项目上遇到需要将excel中的数据导入到数据库的classify表中,于是乎拼命上网查阅方法,发现以下两种方法比较可行:在此之前先说说按照网上的说法我没有试验成功的方法,将excel文件xls保存为csv文件,利用...

    今天项目上遇到需要将excel中的数据导入到数据库的classify表中,于是乎拼命上网查阅方法,发现以下两种方法比较可行:

    在此之前先说说按照网上的说法我没有试验成功的方法,将excel文件xls保存为csv文件,利用phpadmin进行导入,遗憾的是,我在导入的过程中提示“。。。line

    1”记不清了什么错误,总之是没有成功。

    1.将选中的数据快儿拷贝到一个TXT文本文件中(记得把后面的空格消掉。。否则导入数据库后会有对应的空行),假如存到“D:\data.txt”这个位置里。

    2.根据要导入的数据快儿建立MySql数据库和表,然后进入命令提示符里使用命令

    load data local infile

    'D:/data.txt' into table exceltomysql fields terminated by

    '\t';

    注意:盘符我使用的“/”才成功,否则提示找不到文件 下面文章中是用的“\”!

    进行导入操作

    手动进行Excel数据和MySql数据转换

    2006年09月16日 星期六 下午 02:44

    今天是全国数学建模比赛,同学选的一个题目需要对一个large的Excel表格进行统计,好哥们儿嘛~~便帮助他完成了数据从Excel到MySql的转化。记下具体步骤分享给大家,也免得大家到网上到处乱找了。

    假如要把如图所示的Excel表格导入到MySql数据库中,如图:

    a4c26d1e5885305701be709a3d33442f.png

    步骤一:

    选取要导入的数据快儿,另外要多出一列,如下图:

    a4c26d1e5885305701be709a3d33442f.png

    步骤二:

    将选中的数据快儿拷贝到一个新建的表格工作薄,然后“另存为”

    -》“文本文件(制表符分割)(*.txt)”,假如存到“D:\data.txt”这个位置里。如图:

    a4c26d1e5885305701be709a3d33442f.png

    步骤三:

    根据要导入的数据快儿建立MySql数据库和表,然后使用命令

    load data local infile

    'D:\data.txt' into table exceltomysql fields terminated by

    '\t';

    进行导入操作。如下图:

    a4c26d1e5885305701be709a3d33442f.png

    现在数据已经全部导入到MySql里了,

    让我们来select一下吧,如图:

    a4c26d1e5885305701be709a3d33442f.png

    到此,数据由Excel到MySql的转换已经完成。

    下面说下,数据从MySql到Excel的转化,其过程其实还是借助那个“制表符分割”的文本文件。

    将如要将这个表中的男生信息导入到Excel中,可以这样。

    select * into outfile 'D:\man.txt' from

    exceltomysql where xingbie="男";

    如图:

    a4c26d1e5885305701be709a3d33442f.png

    这样,表中所有男生的信息都被输出到以制表符分割,'\n'结尾的文本文件D:\man.txt文件中。

    你可以打开Excel,然后选择“数据”->“导入外部数据”->“导入数据”,选中“D:\man.txt”,一路确定就行了。

    注意:这个方法我用过虽然可以插入到mysql数据库中,但是有乱码的危险。所以我更推荐使用下面的方法。

    方法二:此方法是博友TVBBOY整理,我根据自己遇到的情况重新总结如下:

    准备工作: PHP-ExcelReader,下载地址: http://sourceforge.net/projects/phpexcelreader 我用的是2007-07-06的那个压缩文件,下载后用到\phpExcelReader\Excel目录下的oleread.inc和reader.php两个文件,并将reader.php文件打开后require_once

    'Spreadsheet/Excel/Reader/OLERead.php';屏蔽掉,增加为require_once

    'oleread.inc';

    然后直接将这两个文件复制到服务器下,我用的是WAMP,我直接复制到WWW目录下,再将所需要的excel文件考进来我的文件是classify.xls,然后需要一个调用reader.php的文件,源代码如下:

    ExcelToMysql.php

    require_once 'reader.php';

    $data = new Spreadsheet_Excel_Reader();

    $data->setOutputEncoding('gbk');

    $data->read('classify.xls'); //”classify.xls”是指要导入到mysql中的excel文件

    @ $db =

    mysql_connect("localhost", "root", "") or

    die("Could not connect to database.");//连接数据库

    mysql_query("set names 'gbk'");//输出中文

    mysql_select_db('japlearn'); //选择数据库

    error_reporting(E_ALL ^ E_NOTICE);

    for ($i = 1; $i <=

    $data->sheets[0]['numRows']; $i++) {

    //以下注释的for循环打印excel表数据

    //以下代码是将excel表数据【6个字段】插入到mysql中,根据你的excel表字段的多少,改写以下代码吧!

    $sql =

    "INSERT INTO classify VALUES('".

    $data->sheets[0]['cells'][$i][1]."','".

    $data->sheets[0]['cells'][$i][2]."','".

    $data->sheets[0]['cells'][$i][3]."','".

    $data->sheets[0]['cells'][$i][4]."','".$data->sheets[0]['cells'][$i][5]."','".$data->sheets[0]['cells'][$i][6]."')";

    echo

    $sql.'
    ';

    $res = mysql_query($sql);

    }

    ?>

    文中红色标注为需要注意的地方,请替换成你配置好的数据,如数据库配置等。运行http://localost/ExcelToMysql.php实现导入。

    展开全文
  • excel已经成为大家办公中可缺少的一部分了,但是一些win7用户在excel使用中往往遇到电脑死机没有及时保存文件的问题,使得做的努力白费还得重新做,费时还费力,有什么办法能够挽救丢失或受损的文件呢?...
  • 今天项目上遇到需要将excel中的数据导入到数据库的classify表中,于是乎拼命上网查阅方法,发现以下两种方法比较可行:在此之前先说说按照网上的说法我没有试验成功的方法,将excel文件xls保存为csv文件,利用...
  • 知道这4个方法,PDF、Excel、Word、PPT文件随意转换关于Word、PPT、Excel、PDF等文件格式转换的问题,很多小伙伴让我出一期合集,那么这就来了吗!综合方法1、另存法我们在编辑文件结束后,都会进行文件的保存,...
  • 知道大家平时在手机上办公的时候会不会遇到为什么发给朋友的文件在电脑端却打开?发送文件方式如果你出现了这种情况说明你发送的表格是以小程序发过去的,所以电脑中是无法支持该功能的!那么正确的操作方式是1...
  • 同事的电脑里的EXCEL文件不知什么原因双击能直接打开了,双击只能打开软件而且是没有任何表格的,但通过软件中的“打开”再找到指定的文件能打开。 解决方案: 打开excel,依次选择:工具-选项-常规-设置-忽略...
  • C++读取CSV表格

    万次阅读 热门讨论 2013-04-06 16:34:20
    CSV是一种Excel表格的导出格式,在Excel表格的菜单栏中点击文件->另存会弹出一个文件夹浏览窗口,在下拉框中可以选择保存格式,其中有一个就是.CSV(逗号分隔符)选项。 CSV表格的规则: 1 开头是不留空,以行为...
  • 可以通过数据透视表,筛选出你的各种需求,但是要求操作要熟练,没办法在这里描述清楚的07版office办公软件中的excle中,为什么在加载项里选择了分析工具库,数据分析还是显示出来?当你有某一个表格需要导出数据...
  • creator加载表格数据

    2019-11-25 18:29:33
    首先要对表格编码处理,如果是excel存储的其他格式的名字,比如xlsx什么的,在excel中更改一下格式。右上角选择另存 选择其他格式,在格式类型中选择csv,点击保存就可以了。 最好再用notepad++将文件的编码...
  • 为什么会介绍MR平台数据,以前网优工程师亲身经验,从MR平台提取覆盖采样点,一顿操作猛如虎,最后关键节点保存丢失了,然后小编推荐这篇文章;在看文章之前,知道有没有小伙伴被CSV格式的表格给坑过。或者说被坑...
  • 机房重构为什么需要报表?

    热门讨论 2017-05-24 15:44:23
    知道各位有没有想过这个问题,dategridview控件也能实现数据库里面的信息,也能导出Excel表格,那为什么还要报表呢,百度百科上面这样解释的,报表 = 多样的格式 + 动态的数据,这就告诉了我们报表这个控件可以...
  • 另存为UTF-8格式(这里另存为什么格式 主要看你的编程语言的编码格式一定是UTF-8)。保存。 搞定之前尝试直接在把Excel表格另存为SCV格式时选择编码格式,结果发觉没啥用。 然后尝试了网上的各种办法。依然没用。...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    Excel表格里如何插入页码的? 如何设置页脚首页第5页 表格的页脚问题 无拘无束的页眉 打印表头 Excel打印中如何显示错误值符号 对于一些可打印的字符的处理 用那个函数可将个位数前面的零值显示出来? 如果你要...
  • 工作中比较重要的表格数据大家都会用pdf格式来进行保存 ,这样的格式虽然稳定而且不易被修改,但如果发现表格错误,或要添加新的内容时就比较麻烦了,需要将pdf重新转回excel,那么pdf转换成excel的方法是什么呢?...
  • 我在网上看到一个下载excel的例子,但是有些知道还请各位大神指导 ``` ipcMain.on('saveDialog', (event, arg) => { // 打开弹窗 dialog.showSaveDialog(win, { // 在 Windows 和 Linux 上, 打开...
  • 中文版Excel.2007高级VBA编程宝典 1/2

    热门讨论 2012-04-06 16:00:16
     5.4.1 快捷但质量高的电子表格应用程序  5.4.2 自己创作、自己使用的电子表格应用程序  5.4.3 单用户电子表格应用程序  5.4.4 意大利面条式电子表格应用程序  5.4.5 实用电子表格应用程序  5.4.6 包含工作...
  • Excel表格里如何插入页码的? 如何设置页脚首页第5页 表格的页脚问题 无拘无束的页眉 打印表头 Excel打印中如何显示错误值符号 对于一些可打印的字符的处理 用那个函数可将个位数前面的零值显示出来? 如果你要...
  • 中文版Excel.2007图表宝典 2/2

    热门讨论 2012-04-06 19:01:36
     本书的作者John Walkenbach是享有国际美誉的“电子表格先生”,他利用自己15年来使用Excel的经验,毫无保留地传授了学习和使用Excel的所有知识,读者掌握Excel提供了绝佳的途径。本书的前两个版本均已获得巨大...
  • 第2篇实例篇,重点介绍如何使用Excel解决文秘工作中的常见问题,具体包括文秘常用单据的制作、办公室常用表格的制作、企划书的制作、公司会议安排与会议室使用管理、公司车辆使用管理、客户信息管理、员工资料库与...
  • 今日目标学习使用Power Query,自动添加行做表格经常会遇到一些稀奇古怪的问题。问题古怪到,让你花一上午的时间,...因为Excel高手的一个判断标准就是,明白为什么要这么做,但是也能给你办的很漂亮!2- 原因分析...
  • 数据库为什么会出现数据库呢?...找起来也不好找,比如较原始的方式,我们可能都会习惯新建一个txt文本或者excel表格或者ppt来保存自己的数据,txt里保存了一份个人简介信息,excel里保存了一张自己
  • 详细信息excel表格如下: 下载caj如下: 特点 通过发送解析包形式抓取数据,相比于使用selenium等方式性能稍高一些。 可使用知网高级检索功能进行搜索,更高效检索文献。 可根据网络及知网反爬虫情况选择性开启...
  • MAPGIS地质制图工具

    2013-05-06 16:15:30
    b、MapGis-> Excel1输出数据时,只要点文件处于编辑状态下既可以,本功能是按照文字位置排列输出到Excel表格,所以样式与MapGis中的会不同。 FAQ: 1、MapGis数据转入Excel后表格内容空白什么原因? 答:可能原因...
  • 支持基础资料从Excel表格导入到软件系统,支持签回单功能,而且可以批量签回。 软件的权限管理非常强大,可以根据需要来授权查看敏感信息,如:单价、金额等。 支持拼音码智能搜索(如:"开博送货单",您录入"kb...
  • Chapter1 大众误区:为什么我用起来会费劲? 1 1.1 Word那么强,你却把它当记事本用? 2 1.2 该死的,我又没有保存Word ! 6 1.3 我保存错了怎么恢复到之前的版本? 7 1.4 让你战斗力瞬间飙涨10000+的快捷键! 8...
  • 在日常生活中,我们经常会感觉钱知道花到了什么地方,通过它您可以方便地查看每一条历史记录,并且可以通过月度查询来了解某一个月的收入支出情况,在每条记录的收入、支出下,还能够设置细分类,通过细分查询来...

空空如也

空空如也

1 2 3
收藏数 49
精华内容 19
关键字:

为什么excel表格保存不了