Могу ли я отформатировать данные, которые должны быть записаны в файл CSV, используя Java - PullRequest
3 голосов
/ 01 октября 2010

У меня есть некоторый код для записи данных в файл CSV, но он записывает данные в CSV без надлежащего форматирования.Я хочу выделить какой-то конкретный текст.Это возможно?

Ответы [ 4 ]

5 голосов
/ 01 октября 2010

CSV - это просто текстовый формат, поэтому вы не можете выполнять какое-либо форматирование.

Если вы хотите форматировать, рассмотрите возможность использования библиотеки Excel, такой как Apache POI или Jasper Reports . (Конечно, тогда вы получите файл Excel, а не CSV, поэтому в зависимости от вашей ситуации это может или не может быть уместным)

В качестве примечания, при написании CSV есть некоторые странные нюансы (например, проверка правильности кавычек, запятых и т. Д.). Есть хорошая легкая библиотека, которую я использовал под названием Open CSV , которая может сделать вашу жизнь проще, если вы решите просто использовать старый CSV.

3 голосов
/ 01 октября 2010

CSV - это текстовый формат файла, вы не можете использовать любой текстовый эффект.

2 голосов
/ 01 октября 2010

Не то чтобы я знал, CSV - это простой текстовый формат.Если вы создаете CSV, чтобы вы могли открыть его в Excel, то я бы посоветовал взглянуть на формат MS Excel XML.

http://en.wikipedia.org/wiki/Microsoft_Office_XML_formats#Excel_XML_Spreadsheet_example

Примером может бытьследующим образом (взято из ссылки на Википедию, и это делает текст жирным)

   <?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook
   xmlns="urn:schemas-microsoft-com:office:spreadsheet"
   xmlns:o="urn:schemas-microsoft-com:office:office"
   xmlns:x="urn:schemas-microsoft-com:office:excel"
   xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
   xmlns:html="http://www.w3.org/TR/REC-html40">
  <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
    <Author>Darl McBride</Author>
    <LastAuthor>Bill Gates</LastAuthor>
    <Created>2007-03-15T23:04:04Z</Created>
    <Company>SCO Group, Inc.</Company>
    <Version>11.8036</Version>
  </DocumentProperties>
  <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
    <WindowHeight>6795</WindowHeight>
    <WindowWidth>8460</WindowWidth>
    <WindowTopX>120</WindowTopX>
    <WindowTopY>15</WindowTopY>
    <ProtectStructure>False</ProtectStructure>
    <ProtectWindows>False</ProtectWindows>
  </ExcelWorkbook>
  <Styles>
    <Style ss:ID="Default" ss:Name="Normal">
      <Alignment ss:Vertical="Bottom" />
      <Borders />
      <Font />
      <Interior />
      <NumberFormat />
      <Protection />
    </Style>
    <Style ss:ID="s21">
      <Font x:Family="Swiss" ss:Bold="1" />
    </Style>
  </Styles>
  <Worksheet ss:Name="Sheet1">
    <Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="5"
       x:FullColumns="1" x:FullRows="1">
      <Row>
        <Cell>
          <Data ss:Type="String">Text in cell A1</Data>
        </Cell>
      </Row>
      <Row>
        <Cell ss:StyleID="s21">
          <Data ss:Type="String">Bold text in A2</Data>
        </Cell>
      </Row>
      <Row ss:Index="4">
        <Cell ss:Index="2">
          <Data ss:Type="Number">43</Data>
        </Cell>
      </Row>
      <Row>
        <Cell ss:Index="2" ss:Formula="=R[-1]C/2">
          <Data ss:Type="Number">21.5</Data>
        </Cell>
      </Row>
    </Table>
    <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
      <Print>
        <ValidPrinterInfo />
        <HorizontalResolution>600</HorizontalResolution>
        <VerticalResolution>600</VerticalResolution>
      </Print>
      <Selected />
      <Panes>
        <Pane>
          <Number>3</Number>
          <ActiveRow>5</ActiveRow>
          <ActiveCol>1</ActiveCol>
        </Pane>
      </Panes>
      <ProtectObjects>False</ProtectObjects>
      <ProtectScenarios>False</ProtectScenarios>
    </WorksheetOptions>
  </Worksheet>
</Workbook
0 голосов
/ 01 октября 2010

У меня обычный старый обычный CSV нет.Но нет никаких причин, по которым вы не могли бы закодировать свои данные перед их записью ... например, теги HTML для жирного шрифта - .Это будет сигнализировать вам, какие именно части текста выделены жирным шрифтом, и, будучи хорошо известным стандартом, все еще читается человеком.Основным недостатком является то, что вы должны анализировать свои данные после того, как прочитали их: (

Что еще нужно учесть, поскольку вы выписываете данные, почему бы не записать их как разделенные запятыми значения в RTF или каком-либо другом формате, которыйподдерживает полужирный и т. д. Обычно CSV - это простой текст, но нет причин, по которым вы не могли бы написать его другим способом. Просто не забудьте прочитать его в том же формате ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...